Sql 如果多个列满足某些条件,如何将它们设置为null?
我有一个表,它有8列,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
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此表是一个中间表。我是故意这样做的。谢谢你的建议。