SQL Server - 选择至少有一个值不为null的列

时间:2014-05-21 14:36:17

标签: sql sql-server

我想选择至少有一个值不为null的所有列。例如:

TableUser
----------------------------
Name   |  Email  |  Phone
----------------------------
User1  |  NULL   |  123
User2  |  NULL   |  NULL
User3  |  NULL   |  NULL

应该产生

------------------
Name   |  Phone
------------------
User1  |  123
User2  |  NULL
User3  |  NULL

在给定结果集的情况下,是否可以为您创建一个函数?

例如:

removeNull(SELECT * FROM TableUser WHERE Phone IS NOT NULL);

1 个答案:

答案 0 :(得分:1)

如何检测给定列是否只有NULL值:

 SELECT 1 
      FROM tableuser
    HAVING COUNT(email) = 0 
           AND COUNT(*) > 0

结果集将包含零行(列a具有非NULL值)或一行(列a仅具有NULL值)。