仅选择SQL中列为空的整行

仅选择SQL中列为空的整行,sql,sql-server-2014,Sql,Sql Server 2014,如果我有下面的示例表,有没有办法只保留“Closed Date”列为空的行?在本例中,只有第二行有一个空的“Closed Date”列,第三行和第四行没有 我找到了这个,但这不是我想要的。任何古鲁都能开悟吗?谢谢 抱歉,忘了提及我使用SQL Server 2014 您可以使用IS NULL筛选出包含NULL值的记录: SELECT * FROM your_table WHERE "Closed Date" IS NULL SELECT * FROM your_table WHERE "Cl

如果我有下面的示例表,有没有办法只保留“Closed Date”列为空的行?在本例中,只有第二行有一个空的“Closed Date”列,第三行和第四行没有

我找到了这个,但这不是我想要的。任何古鲁都能开悟吗?谢谢

  • 抱歉,忘了提及我使用SQL Server 2014
您可以使用
IS NULL
筛选出包含
NULL
值的记录:

SELECT *
FROM your_table
WHERE "Closed Date" IS NULL
SELECT *
FROM your_table
WHERE "Closed Date" IS NULL

请记住,带空格的列标识符是不好的做法。您应该使用类似于
Closed\u Date
的内容来避免引用。

您可以使用
IS NULL
来筛选包含
NULL
值的记录:

SELECT *
FROM your_table
WHERE "Closed Date" IS NULL
SELECT *
FROM your_table
WHERE "Closed Date" IS NULL

请记住,带空格的列标识符是不好的做法。您应该使用类似于
结束日期的内容来避免引用。

您可以在
WHERE
子句中使用
IS NULL
条件:


您可以在
WHERE
子句中使用
IS NULL
条件:


SQL Server包含空字符串(“”)的另一种方法


SQL Server包含空字符串(“”)的另一种方法



他真的应该指定他的关系数据库。但是
WHERE
构造应该在MySQL、Oracle和SQL Server中工作。这就是为什么我没有给出答案,我首先在OP中询问dbms:)忘记提及我尝试过的与您的答案一样为空,但它只返回头。我不太清楚为什么:/I我使用SQL server 2014他真的应该指定他的RDBMS。但是
WHERE
构造应该在MySQL、Oracle和SQL Server中工作。这就是为什么我没有给出答案,我首先在OP中询问dbms:)忘记提及我尝试过的与您的答案一样为空,但它只返回头。我不太清楚我为什么使用SQL server2014@lad2025当我了解dbms时,我可以更新语法:-)我使用SQL Server 2014。如果我只使用“SELECT*FROM TABLE WHERE Closed_Date为NULL”,它将只返回标题,而不返回任何角色。如果列值确实为空,则@Chubaka SQL Server通常会显示
NULL
。根据你的评论,我可以肯定地告诉你,这个值不是空的;它要么是空字符串,要么是带空格的字符串。@lad2025当我了解dbms时,我可以更新语法:-)我使用SQL Server 2014。如果我只使用“SELECT*FROM TABLE WHERE Closed_Date为NULL”,它将只返回标题,而不返回任何角色。如果列值确实为空,则@Chubaka SQL Server通常会显示
NULL
。根据你的评论,我可以肯定地告诉你,这个值不是空的;它是空字符串或带空格的字符串。空值是指
NULL
还是空字符串
'
结束日期
列的类型是什么?空值是指
NULL
还是空字符串
'
?关闭日期的类型是什么column@lad2025您所说的SARG able是什么意思?如果在关闭日期存在索引,查询优化器将跳过it@lad2025哦,我明白了,我还不知道,我总是使用
ISNULL
和空字符串逻辑。。感谢这些非常重要的提示,不管怎样,我修改了我的答案。@lad2025您所说的SARG able是什么意思?如果在关闭日期存在索引,查询优化器将跳过it@lad2025哦,我明白了,我还不知道,我总是使用
ISNULL
和空字符串逻辑。。谢谢你的重要提示,不管怎样,我修改了我的答案。
-->> SQL Server
SELECT * FROM your_table
WHERE [Closed Date] IS NULL OR [Closed Date] = ''

SELECT *
FROM your_table
WHERE ISNULL([Closed Date],'') = ''