ORACLE 上的 IF ELSE 条件

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;

kro*_*lko 7

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)