Ответ 1
Попробуйте это.
SELECT (CASE WHEN LEN(SomeLongTextColumn) = 0 THEN 1 ELSE 0 END) AS IsEmtpy
@gbn имеет хорошее объяснение того, как вернуть логическое значение.
Мне нужно что-то вроде этого:
select (len(someLongTextColumn)=0) as isEmpty;
Вышеуказанное не работает,
любые альтернативы?
Попробуйте это.
SELECT (CASE WHEN LEN(SomeLongTextColumn) = 0 THEN 1 ELSE 0 END) AS IsEmtpy
@gbn имеет хорошее объяснение того, как вернуть логическое значение.
Если вы отбрасываете бит, тогда большинство клиентских кодов могут читать его как boolean напрямую (SQL Server не имеет типа boolean)
SELECT
CAST(
CASE
WHEN len(someLongTextColumn) = 0 THEN 1 ELSE 0
END AS bit
) as isEmpty;
если у вас много за один проход, используйте битовые переменные следующим образом: Предположим, что бит с константой 1 или 0 в SQL Server
В MS SQL 2012 и более поздних версиях вы можете использовать IIF как сокращенное название:
select IIF(len(someLongTextColumn) = 0, 1, 0) as isEmpty;
SQL Server:
SELECT CONVERT(BIT, 1) -- true
SELECT CONVERT(BIT, 0) -- false