我正在尝试在Oracle上发出sql请求,但我有点问题。我这句话要翻译,我不知道怎么样。你能帮助我吗?我怎么翻译呢? :(
IF(CODE="fuu")
THEN(SELECT bar FROM TABLE)
ELSE(we return 0)
建议。
编辑:
我的要求就是那样
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;
这个解决方案有效,但我没有很好的答案。实际应该是A = 20 - > bar = 7598而不是0;
答案 0 :(得分:4)
SQL中的case表达式等同于其他语言的IF语句:
CASE WHEN condition THEN value1 [ ELSE value2 ] END
我猜你正在寻找这样的东西:
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"