Ошибка с оператором IIF в SQL Server 2014

Я создаю представление SQL Server 2014 в Management Studio, которое использует оператор IIF, но я продолжаю получать сообщение об ошибке: выражение нелогического типа, указанное в контексте, где ожидается условие.

Я попробовал новое представление с очень простым оператором IIF, и оно тоже не удалось.

Это оператор, который я использую для проверки: SELECT IIF('1=1', 'True', 'False') AS Expr1


person RaymondC    schedule 19.08.2015    source источник
comment
уберите одинарные кавычки в '1=1', должно быть просто 1=1   -  person Lamak    schedule 19.08.2015


Ответы (2)


SELECT IIF(1=1, 'True', 'False') AS Expr1

'1=1' у вас ранее не было boolean условия. Поменял на 1=1

person Vamsi Prabhala    schedule 19.08.2015
comment
Я ввел его как 1 = 1, но Management Studio изменил его на «1 = 1». - person RaymondC; 19.08.2015
comment
я не видел, чтобы Management Studio вел себя так, как вы говорите. - person Vamsi Prabhala; 19.08.2015
comment
Management Studio изменила его самостоятельно?, как вы пишете свой код? - person Lamak; 19.08.2015
comment
В Management Studio есть визуальный инструмент для создания представлений с несколькими панелями. Я писал оператор IIF на панели «Критерии», в которой есть столбцы с именами «Столбец», «Псевдоним», «Таблица» и т. д. На этой панели логическое условие внутри оператора IIF будет автоматически добавлять открывающие и закрывающие одинарные кавычки! Однако, если я напишу оператор IIF непосредственно в панели SQL, он сработает. Спасибо вам всем! - person RaymondC; 19.08.2015

Это означает, что первый параметр должен возвращать истинное или ложное условие. Следовательно, оценка двух целых чисел даст это. То, что у вас было сейчас, было просто строкой

SELECT IIF(1=1, 'True', 'False') AS Expr1

Может также сделать '1' = '1'

person FirebladeDan    schedule 19.08.2015