2016-03-02 102 views
1

我有一个表有8列,Child0, Child1, Child2, Child3, Child4, Child5, Child6, Childx如何满足某些条件将多列设置为空?

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

我只能想:

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 

有一些简单的方法来做到这一点?

+0

如果你有一个标准化的表,这将不会是一个问题。 –

+0

@SeanLange此表是一个中间表。我故意以这种方式创建它。感谢您的建议。 – kzhang12

回答

5

您可以使用NULLIF

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

谢谢,它的工作原理。我需要等待另外7分钟才能将此标记为答案。 – kzhang12

相关问题