Как вернуть логическое значение из запроса во время оценки состояния? - PullRequest
10 голосов
/ 02 августа 2011

Мне нужно что-то вроде этого:

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

Выше не работает,

Есть ли альтернативы?

Ответы [ 4 ]

17 голосов
/ 02 августа 2011

Если вы преобразуете в бит, тогда большая часть клиентского кода может читать его как логическое значение (SQL Server не имеет логического типа)как это: Неявный бит с константой 1 или 0 в SQL Server

11 голосов
/ 02 августа 2011

Попробуй это.

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

@ gbn содержит хорошее объяснение о том, как вернуть логическое значение.

0 голосов
/ 19 октября 2017

SQL Server:

SELECT CONVERT(BIT, 1) -- true
SELECT CONVERT(BIT, 0) -- false
0 голосов
/ 03 августа 2015

В MS SQL 2012 и более поздних версиях вы можете использовать IIF в качестве сокращения:

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