sql - 如何在 Oracle 选择语句中声明变量
问题描述
我有这个 Oracle SQL 请求:
SELECT col1,
col2,
DECODE(
SUM(CASE WHEN col3='A' AND col4='+' THEN col5 ELSE 0 END),
NULL,
0,
SUM(CASE WHEN col3='A' AND col4='+' THEN col5 ELSE 0 END)
)
FROM mytable
group by col1, col2;
我在问是否有办法声明一种变量并有这样的东西:
SELECT col1,
col2,
DECODE(
myVariable,
NULL,
0,
myVariable
)
FROM mytable
group by col1, col2;
解决方案
不,但你可以做一个子查询:
SELECT col1,
col2,
DECODE(
SUM(myColumn),
NULL,
0,
SUM(myColumn)
)
FROM (
SELECT
col1,
col2,
CASE WHEN col3='A' AND col4='+' THEN col5 ELSE 0 END myColumn
FROM mytable
) a
group by col1, col2;
推荐阅读
- php - 在 laravel 中创建类别和子类别
- jquery - 在 Elementor Pro 弹出窗口中使用联系表 7 的问题
- javascript - 音乐机器人问题 discord.js
- cursor - 如何检测键盘中选择的语言
- html - 使用 Thymeleaf 显示图像 - Spring Boot
- pine-script - 能够在交易策略中使用交易量配置文件
- python - PyCharm 中是否有 HTML 块 {%%} 的快捷方式?
- c# - “无法建立连接,因为目标机器主动拒绝它” Nethereum 异常
- java - 使用 spring boot 和 postgres 的休眠 oneToMany 问题
- r - makeClusterPSOCK ERROR 工作人员无法连接