【发布时间】:2014-02-21 22:25:58
【问题描述】:
我正在尝试在 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;
【问题讨论】:
-
您想在 SQL 或 PL/SQL 中执行此操作吗?
-
我想在 SQL 中执行此操作。
-
select bar from the_table where code = 'fuu';有什么问题 -
@a_horse_with_no_name :您的解决方案是完美的原因,当代码不是 fuu 时返回 0。但我有下一个错误:01427. 00000 - “单行子查询返回多行”
-
我删除了我的答案,因为我意识到它不适用于您的
GROUP BY。我们需要知道code和bar列与(A,B,C,D,E)分组的关系。一些示例输入和输出可能有助于使其更清晰。
标签: oracle if-statement conditional-statements