我需要这样的东西:
select (len(someLongTextColumn)=0) as isEmpty;
以上不起作用,
任何替代方案?
答案 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