Dru*_*Win 6 oracle if-statement conditional-statements
我正在尝试在 Oracle 上发出 sql 请求,但遇到了一些问题。我有这句话要翻译,但我不知道如何翻译..你能帮我吗?我该如何翻译它?:(
IF(CODE="fuu")
THEN(SELECT bar FROM TABLE)
ELSE(we return 0)
Run Code Online (Sandbox Code Playgroud)
谢谢建议。
编辑 :
我的要求是这样的
SELECT distinct
A, B, C, D, E,
SUM(F+G+H) AS "FGH",
SUM(I -(FGH)) AS "I",
CASE WHEN code='fuu' THEN bar ELSE 0 END AS AS "What I need"
FROM
TABLE
WHERE
A=20
GROUP BY
A, B, C, D, E;
Run Code Online (Sandbox Code Playgroud)
这个解决方案有效,但我没有好的答案。实际上应该是 A=20 -> bar = 7598 而不是 0;
SQL 中的 case 表达式相当于其他语言中的 IF 语句:
CASE WHEN condition THEN value1 [ ELSE value2 ] END
Run Code Online (Sandbox Code Playgroud)
我猜你正在寻找这样的东西:
SELECT distinct
A, B, C, D, E,
SUM(F+G+H) AS "FGH",
SUM(I -(FGH)) AS "I",
CASE WHEN CODE='fuu' THEN bar ELSE 0 END As "What I need"
FROM
TABLE
WHERE
A=20
GROUP BY
A, B, C, D, E, "What I need"
Run Code Online (Sandbox Code Playgroud)