sql - SQL Server 中的“<>”不返回 NULL 值行

标签 sql sql-server tsql

我在 SQL 服务器中有下表 (Table_1):

Table 1

并在表中具有以下值。

enter image description here

我正在使用以下查询来获取没有“Thakker”作为 LastName 的记录。

SELECT [id]
      ,[FirstName]
      ,[LastName]
  FROM [dbo].[Table_1] WHERE LastName <> 'Thakker'

但它只返回第三行。我期待它应该返回第二行和第三行。

为什么它不返回第二行。 ?

最佳答案

请添加 ISNULL 检查列 LastName 以在选择中包含 NULL 值。

SELECT [id]
      ,[FirstName]
      ,[LastName]
FROM [dbo].[Table_1] 
WHERE ISNULL(LastName,'') <> 'Thakker'

或使用CASE

SELECT [id]
      ,[FirstName]
      ,[LastName]
FROM [dbo].[Table_1] 
WHERE 1=CASE WHEN LastName='Thakker' THEN 0 ELSE 1 END

关于sql - SQL Server 中的“<>”不返回 NULL 值行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21794679/

相关文章:

MySQL 选择使用组和计数连接表

sql-server - 在 SQL SERVER 2008 中从字符串转换日期和/或时间时转换失败

sql-server - 如何在 SQL Server 查询中排除周末?

sql - 从多个条件中选择

sql - 合并两个具有不同 ORDER BY 的 SELECT 查询

sql - 操作必须使用可更新查询/SQL - VBA

SQL查询查找具有特定前缀的记录

mysql - 复杂的sql查询(GROUP BY)

c# - 在sql server中获取唯一值

sql - 如何将数据库列中可接受的值限制为 1 到 5?