使用字段获取记录,然后使用null获取特定值

时间:2014-04-30 16:27:02

标签: sql sql-server

我想在SQL中:如果一个字段等于一个特定的值,我想要这个记录,如果不是我想要这个字段的记录等于null。

我可以尝试:

SELECT TOP 1 COL1, COL2, COL3
FROM TABLE1 WHERE (COL2 = MY_SPECIFIC_VALUE OR COL2 IS NULL) AND COL3 = '42'
AND COL1 = 3

但是,返回的结果是什么?最小的身份?或者没有指定?

1 个答案:

答案 0 :(得分:2)

假设这是一个真正的问题:

  
    

如果一个字段等于一个特定的值,我想要这个记录,如果不是我希望这个字段的记录等于null。

  

您可以这样做:

SELECT TOP 1 COL1, COL2, COL3
FROM TABLE1
WHERE (COL2 = MY_SPECIFIC_VALUE or COL2 IS NULL) AND
      COL3 = '42' AND COL1 = 3
ORDER BY (CASE WHEN COL2 = MY_SPECIFIC_VALUE THEN 1 ELSE 2 END);