在SQL Server中是否有与ISNULL相反的功能?要做的不是空吗?

Bob*_*bby 34 sql sql-server isnull

我在select语句中有这个代码

ISNULL(a.PolicySignedDateTime,aq.Amount) AS 'Signed Premium',
Run Code Online (Sandbox Code Playgroud)

但我想看看"a.PolicySignedDateTime"是否为空.是否有一个简单的功能来执行此操作,不涉及使用"if"语句?

干杯伙计们

Szy*_*mon 34

你必须使用 CASE

SELECT CASE WHEN Field IS NOT NULL
    THEN 'something'
    ELSE 'something else'
END
Run Code Online (Sandbox Code Playgroud)


gsu*_*ran 8

我知道已经晚了,但以防万一其他人查看此内容并使用 MSSQL 2012 或更高版本,您可以使用“IIF”语句。

我猜 OP 不想使用 'IF' clausule 原因是“代码语法太多”来完成简单的东西。

另一种比 'IF' 语句更简洁的方法是 'IIF'。只是一个内联的“IF”简化。

SELECT IIF(X IS NULL, 'Is null', 'Not null') 'Column Name'
Run Code Online (Sandbox Code Playgroud)

关于OP

SELECT IIF(a.PolicySignedDateTime IS NULL, NULL, aq.Amount) AS 'Signed Premium'
Run Code Online (Sandbox Code Playgroud)

https://docs.microsoft.com/en-us/sql/t-sql/functions/logical-functions-iif-transact-sql?view=sql-server-ver15