SQL查询:如果为NULL,则取另一列,但如果再次为NULL,请忽略它

  • 本文关键字:NULL 如果 一列 查询 SQL sql
  • 更新时间 :
  • 英文 :

[SQL QUERY]嗨,我需要一个列中的日期值,如果这个列的值为NULL,那么应该引用另一个列,应该这样翻译:
SELECT * ISNULL(column1, column2)
FROM [Table1]

但现在,如果第二列(column2(也有NULL值,他需要忽略它,我该如何处理?

非常感谢!!

ISNULL将为您做到这一点。

SELECT ISNULL(Modified, Created) as LastTouched
FROM Table

如果modified为null,created为null,则LastTouched将为null。

如果您想在两个值都为null的情况下过滤行,那么您需要使用where子句

SELECT ISNULL(Modified, Created) as LastTouched
FROM Table
WHERE Modified IS NOT NULL OR Created IS NOT NULL

顺便说一句,查询中有一个语法错误:select子句中的星号后面缺少一个逗号。它必须看起来像这样:

SELECT *, ISNULL(column1, column2)
FROM [Table1]

聚结适用于多个列/值。如果只对两个值使用它,则不确定是否存在任何性能差异。

编辑:是的,我的问题是——如果你想要Modified或Created都不为null的行,但不是两者都为null,那么你应该在查询中使用or——我在示例中已经解决了这个问题。感谢@GarethD

相关内容

最新更新