Sql 如果多个列满足某些条件,如何将它们设置为null?

Sql 如果多个列满足某些条件,如何将它们设置为null?,sql,sql-server,Sql,Sql Server,我有一个表,它有8列,Child0,Child1,Child2,Child3,Child4,Child5,Child6,Childx 如果Child0=Childx,则Child0=null否则Child0保持不变。同样的逻辑也适用于Child1-child6 我只能想到: SELECT CASE WHEN Child6=Childx then null ELSE Child6 END AS CHILD6, CASE WHEN Child5=Childx then

我有一个表,它有8列,
Child0,Child1,Child2,Child3,Child4,Child5,Child6,Childx

如果
Child0=Childx
,则
Child0=null
否则
Child0
保持不变。同样的逻辑也适用于
Child1
-
child6

我只能想到:

SELECT 
CASE 
    WHEN Child6=Childx then null 
    ELSE Child6
END AS CHILD6,
CASE 
    WHEN Child5=Childx then null 
    ELSE Child5
END AS CHILD5,
...
FROM TABLE

有什么简单的方法可以做到这一点吗?

您可以使用
NULLIF

SELECT NULLIF(Child0,Childx) Child0,
       NULLIF(Child6,Childx) Child6,
       ....
FROM dbo.YourTable

谢谢,它起作用了。我需要再等7分钟才能将此标记为答案。如果您有一个规范化的表,这不会是一个问题。@SeanLange此表是一个中间表。我是故意这样做的。谢谢你的建议。