SQL: where [columnName] = CASE WHEN (condition) THEN NULL ELSE [columnName] END

SQL: where [columnName] = CASE WHEN (condition) THEN NULL ELSE [columnName] END

想要 运行 在 Sybase 中执行以下查询:

当条件为真时,只有 select 记录 columnName 为 null 的地方,否则,任何其他。但是,我们知道要比较NULL,“=NULL”是不对的,应该用"IS NULL"代替。

我怎样才能将 "IS NULL" 集成到查询中?

select * from tableName
where columnName = CASE WHEN (condition) THEN NULL ELSE columnName END

您可以尝试不使用 CASE 的替代查询:

select * from tableName
where ((condition) AND columnName IS NULL) Or (Not (condition))