使用SQL的案例句子

时间:2013-06-04 19:03:35

标签: sql null case

我正在使用双重句子来根据同一个表中2个其他列中可用的2个条件从表中的列获取值,否则(否则)该函数在null为0时为null它是0。

代码示例如下:

CASE CODE 
    WHEN 'ABC' 
        CASE NAME WHEN 'XYZ' 
        THEN 'VALUE' 
        ELSE NULL 
        END
    ELSE NULL 
END

问题是如果我在else之后使用NULL然后它将所有(空值和值都为0)作为NULL,或者如果我在ELSE之后使用0而不是NULL,那么null和0值都给出为0。 我试图用很多方式写这个句子,但我不知道它不起作用。希望有人可以给我一些很好的解决方案。

3 个答案:

答案 0 :(得分:3)

CASE WHEN CODE = 'ABC' AND NAME = 'XYZ' THEN 'VALUE' ELSE NULL END

答案 1 :(得分:0)

我相信你想要:

CASE WHEN CODE = 'ABC' AND NAME = 'XYZ' THEN 'VALUE' ELSE NULL END

CASE语句的这种结构比在WHEN之前粘贴字段名称更灵活。

答案 2 :(得分:0)

你想做这样的事吗?

(CASE when CODE =  'ABC' and NAME = 'XYZ' 
      THEN 'VALUE' 
      when code = '0' or name = '0'
      then '0'
      ELSE NULL 
 end)

或者也许就是这样(基于你试图从列中获取内容的事实):

(CASE when CODE =  'ABC' and NAME = 'XYZ' 
      THEN value
      when value is NULL or value = 0
      then value
      ELSE NULL 
 end)

根据您的评论,我认为这样可行:

(CASE when CODE =  'ABC' and NAME = 'XYZ' 
      THEN value
      ELSE NULL 
 end)

或者就是这样:

(CASE when CODE =  'ABC' and NAME = 'XYZ' and value <> '0'
      THEN 'value'
      when  CODE =  'ABC' and NAME = 'XYZ' and value = '0'
      then '0'
      ELSE NULL 
 end)

但是,我认为这相当于原始嵌套的两个案例版本。