Я не могу понять, почему это неправильно. Синтаксис для МФЛ определен здесь:«IN» внутри «IFF» дает синтаксическую ошибку
https://msdn.microsoft.com/en-us/library/hh213574.aspx
Почему жалуются на оператора IN?
Я не могу понять, почему это неправильно. Синтаксис для МФЛ определен здесь:«IN» внутри «IFF» дает синтаксическую ошибку
https://msdn.microsoft.com/en-us/library/hh213574.aspx
Почему жалуются на оператора IN?
Похоже, вы используете версию SQL Server, которая не поддерживает эту функцию (до SQL Server 2012). В качестве альтернативы можно использовать случай заявление вроде так:
Select NEWID(), m.MALEPUNKTYPE,
case when m.MALEPUNKTYPE in ('E17', 'E18') then 'D02' else null end
from AMALD m
Это поддерживается с SQL Server 2005 года, однако он должен работать на более ранних версиях слишком
Ни один из «CASE» или «IN» не был новым в 2005 году. Вышеприведенный код должен работать и на SQL Server 2000, а также на ранних версиях. Если вы считаете, что SQL Server 2005 является самой старой поддерживаемой версией SQL Server в настоящее время, это просто похоже на настройку для вас, чтобы вы постоянно редактировали этот вопрос, поскольку более старые версии выпадают из поддержки. –
Справедливая точка зрения, я просто взглянул на то, что MSDN сказал о поддерживаемых версиях, и отметил 2005 как самое раннее. Я обновлю ответ –
Спасибо. Это решило проблему. Я переписал запрос. –
Что SQL сервер версии? Согласно документации 'iif' доступен с 2012 года и выше! –
Какая версия SSMS? 'select *, IIF (o.name IN ('xyz', 'bar'), 1,0) из sys.objects o' отлично работает для меня. –
@MartinSmith, исправлено. Спасибо;) –