如果列等于

时间:2017-11-20 14:28:33

标签: sql oracle

我有一张桌子。 当indicator = 0然后date = null

时我需要

我尝试过一个案例陈述但收到错误。任何帮助将不胜感激。

     Select 
       Case when a.indicator = 0
          Then a.date = 0
             Else a.date
                End Date

      From TableA a

表A

   Id         Date     Indicator
    1          1/1/17      0

5 个答案:

答案 0 :(得分:0)

select
  decode(a.indicator, 0, null, a.date) date
from
  tableA

答案 1 :(得分:0)

使用此选择:

SELECT 
CASE 
  WHEN A.INDICATOR = 0 THEN 
    NULL
  ELSE A.DATE
END DATE
FROM TABLEA A

答案 2 :(得分:0)

你想要的是:

SELECT CASE WHEN a.indicator = 0 THEN NULL ELSE a.date END AS 'Date' FROM TableA AS a

a.date = 0(或date = null)错误的原因是您没有为a.date分配新值,而是说明应该返回什么值(null)来自case表达式,当它成立时。

答案 3 :(得分:0)

您可以使用:

Select "Id", 
    Case 
        when "Indicator" <> 0 
            Then "Date" End AS Date1, 
    "Indicator"
From TableA;

请注意我已经改变了你的逻辑并跳过了else null,因为如果不使用它,无论如何都是默认的。

有关案例的更多信息:http://modern-sql.com/feature/case

SQL HERE

答案 4 :(得分:0)

Select 
    Case a.indicator when 0
        Then null
            Else a.date
            End
 From TableA a