Попробуйте это:
USE NORTHWIND;
GO
SELECT SHIPCOUNTRY,
CASE ORDERID
WHEN 10300
THEN 'I AM FROM 10300'
WHEN 10400
THEN 'I AM FROM 10400'
WHEN 10500
THEN 'I AM FROM 10500'
ELSE 'I AM OUT OF RANGE'
END as OrdersId
FROM ORDERS;
GO
Когда вы явно указали в своем начальном операторе CASE xxxx
, вы не можете повторить переменную в выражениях WHEN
.Это также сработало бы:
USE NORTHWIND;
GO
SELECT SHIPCOUNTRY,
CASE
WHEN ORDERID = 10300
THEN 'I AM FROM 10300'
WHEN ORDERID = 10400
THEN 'I AM FROM 10400'
WHEN ORDERID = 10500
THEN 'I AM FROM 10500'
ELSE 'I AM OUT OF RANGE'
END as OrdersId
FROM ORDERS;
GO
Вы также не можете назначать псевдонимы подобным образом.Используйте ключевое слово AS
после своего блока CASE
.
РЕДАКТИРОВАТЬ: Согласно комментарию Адама Венгера, вы действительно можете написать псевдонимы типа [alias] = fieldname
в своем запросе.Спасибо за исправление!