如果在ORACLE上的ELSE条件

时间:2014-02-21 13:15:57

标签: oracle if-statement conditional-statements

我正在尝试在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;

1 个答案:

答案 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"