我想在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
但是,返回的结果是什么?最小的身份?或者没有指定?
答案 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);