如何在条件评估期间从查询中返回布尔值?

时间:2011-08-02 07:59:46

标签: sql-server boolean

我需要这样的东西:

select (len(someLongTextColumn)=0) as isEmpty;

以上不起作用,

任何替代方案?

4 个答案:

答案 0 :(得分:17)

如果你转换为bit,那么大多数客户端代码可以直接读取它为boolean(SQL Server没有布尔类型)

SELECT
    CAST(
        CASE
           WHEN len(someLongTextColumn) = 0 THEN 1 ELSE 0
        END AS bit
        ) as isEmpty;

如果您有多个一起使用,请使用这样的位变量:Imply bit with constant 1 or 0 in SQL Server

答案 1 :(得分:11)

试试这个。

SELECT (CASE WHEN LEN(SomeLongTextColumn) = 0 THEN 1 ELSE 0 END) AS IsEmtpy

@gbn对如何返回布尔值有很好的解释。

答案 2 :(得分:0)

在MS SQL 2012及更高版本中,您可以使用IIF作为简写:

select IIF(len(someLongTextColumn) = 0, 1, 0) as isEmpty;

答案 3 :(得分:0)

SQL Server:

SELECT CONVERT(BIT, 1) -- true
SELECT CONVERT(BIT, 0) -- false