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