很难在标题中浓缩我需要的东西……就是这样。这适用于 SQL Server 2008。
由于此处无法解释的原因,我需要一个 SELECT 语句,如果 4 列的值为 null,则该语句将在其他列中显示值为 1。像这样的东西。
SELECT name, lastname, p1, p2, p3, p4, "1 if p1,p2,p3 and p4 are all NULL, 0 otherwise" city, st, zip
FROM mytable
问题是我如何翻译成这样的代码:“如果 p1、p2、p3 和 p4 都是 NULL,则为 1,否则为 0”?
我试过了
CASE len(p1+p2+p3+p4) WHEN NULL 1 ELSE 0 END
但它没有用。即使当我这样做
SELECT len(p1+p2+p3+p4) FROM mytable
结果为 NULL。
我尝试了 IF ELSE,但在 SELECT 语句中似乎不受欢迎。
想法?
谢谢。
多谢你们。我选择了不使用 COALESCE 的答案,因为这是我理解的答案。我尝试在这里阅读 MS 的解释:http: //msdn.microsoft.com/en-us/library/ms190349.aspx,但我仍然没有完全理解,加上注释说“必须至少有一个空值键入的 NULL”让我有点害怕。谢谢大家。