Sql 如果列中有多个空值可用,则计数应为零
我有一个表,表中有一列可以有空值。 我需要编写一个查询,如果列中有多个空值,该查询将返回0 下表结构如下:Sql 如果列中有多个空值可用,则计数应为零,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个表,表中有一列可以有空值。 我需要编写一个查询,如果列中有多个空值,该查询将返回0 下表结构如下: ID | FNAME | LNAME | Country | ReportTo ---+-----------+----------+---------+---------- 1 | Davolio | Nancy | USA | null 2 | Fuller | Andrew | USA | null 3 | Leverli
ID | FNAME | LNAME | Country | ReportTo
---+-----------+----------+---------+----------
1 | Davolio | Nancy | USA | null
2 | Fuller | Andrew | USA | null
3 | Leverling | Janet | USA | 1
4 | Peacock | Margaret | USA | 2
5 | Callahan | Laura | USA | 2
如果reports to
列中包含空值,我需要0
作为计数。尝试以下操作:
SELECT
ID, FNAME, LNAME, Country,
CASE WHEN COUNT(CASE WHEN column1 IS NULL THEN 1 END) OVER (PARTITION BY column1) > 1 THEN 0 ELSE Reportsto END AS Reportsto
FROM
t
或者(您可以使用下面的语句,如,其中0=(选择…
)
您需要显示表结构、示例数据和预期输出。@GirishMahida下面是什么?这个计数是现有SQL的一部分吗?下面是表结构。ID FNAME LNAME Country ReportTo 1 Davolio Nancy USA null 2 Fuller Andrew USA null 3 Leverling Janet USA 1 4 Peakle Margaret USA 2 5 | Callahan | Laura USA 2如果Reports To列中包含空值,我需要0作为计数。而且我只能通过修改where来完成clause@GirishMahida请把它编辑成问题,以易于阅读的格式。@GirishMahida,您不认为这是您应该包含在问题中的内容吗?@GirishMahida在
Where
子句中,您可以只筛选结果,但您说过如果空值计数超过一,您希望返回0值!
SELECT
CASE WHEN COUNT(CASE WHEN column1 IS NULL THEN 1 END) > 1 THEN 0 ELSE 1 END
FROM
t