当语句中的列值为空时,如何从 select 语句中返回位值

ife*_*olz 3 sql-server string null bit

在选择查询中,其中一列是可为空的 varchar 列。如果该特定列为 NULL,如何返回 a10作为位值?

我试过做这样的事情

select
    isnull(nullif(isnull(JavascriptCode, 0),JavascriptCode), 1) as HasJavaScriptCode
from code
Run Code Online (Sandbox Code Playgroud)

但这似乎返回了一个字符串值,所以我不能在我的代码中使用。

Zoh*_*led 8

使用案例

SELECT CAST(CASE WHEN JavascriptCode IS NULL THEN 0 ELSE 1 END As bit) As HasJavaScriptCode
FROM code
Run Code Online (Sandbox Code Playgroud)

从 2012 版本(目前支持的最旧版本)开始,SQL Server 支持IIF- 可以使用它代替简单的case表达式来创建更简洁的代码:

SELECT CAST(IIF(JavascriptCode IS NULL, 0,1) As bit) As HasJavaScriptCode
FROM code
Run Code Online (Sandbox Code Playgroud)