sql - 如果满足某些条件,如何将多个列设置为空?

标签 sql sql-server

我有一个包含 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

是否有一些简单的方法可以做到这一点?

最佳答案

你可以使用NULLIF:

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

关于sql - 如果满足某些条件,如何将多个列设置为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35757121/

相关文章:

sql - 确定时间戳是否在季节性工作时间内的最佳方法是什么?

MySQL JOIN 需要附加条件

.net - .Net 是否有动态 Sql 构建器库?

sql - Oracle 中的日志连接和 where 子句执行时间

sql-server - 使用 SSDT 的数据项目,如何引用另一个数据库而不将其填充到 SS Obj Explorer 中的同一项目文件夹中

SQL:SELECT IN 更快和最佳实践?

sql-server - 动态内容中的 SQL 游标

sql - 外连接/子查询遇到问题

sql-server - SQL Server 索引 View 与 Oracle 物化 View

sql - 存储过程结构