2015-10-26 2 views
0

У меня есть следующий SQL, который даст мне работу описание и отдел вывод:SQL заявление Case с параметрами

declare @JOB_DESC nvarchar (50) 
declare @DEPARTMENT nvarchar (50) 
declare @Initials nvarchar (50) 

select case 
@Initials = 'XBF' then (@JOB_DESC = 'Partner', @DEPARTMENT = '_Banking and Finance'), 
@Initials = 'XMA' then (@JOB_DESC = 'Partner', @DEPARTMENT = '_Disputes'), 

else 

SELECT @JOB_DESC = u.NAME, @DEPARTMENT = u.PracticeAreaName 
FROM USERS u where u.USERID = @Initials 

select @JOB_DESC 
select @DEPARTMENT 

Так что я в основном хочу, чтобы заставить описание работы и отдел, если инициалы XBF или XMA, но в противном случае я хочу получить свой результат из общей таблицы пользователей, но это не работает для меня, и я изо всех сил пытаюсь найти правильный SQL-онлайн. Management Studio говорит «Неправильный синтаксис около« = »в отношении первого« = »в заявлении дела .... Любая помощь оценивается ....

ответ

0

Просто сделайте это с помощью IF...ELSE - нет ничего, что Оператор CASE упрощается.

IF @Initials = 'XBF' 
BEGIN 
    SELECT 'Partner' AS JOB_DESC, '_Banking and Finance' AS DEPARTMENT 
END 
ELSE IF @Initials = 'XMA' 
BEGIN 
    SELECT 'Partner' AS JOB_DESC, '_Disputes' AS DEPARTMENT 
END 
ELSE 
BEGIN 
    SELECT u.NAME AS JOB_DESC, u.PracticeAreaName AS DEPARTMENT 
    FROM USERS u where u.USERID = @Initials 
END 

Аналогичный код, если вы хотите их как переменные вместо

declare @JOB_DESC nvarchar (50) 
declare @DEPARTMENT nvarchar (50) 

IF @Initials = 'XBF' 
BEGIN 
    SELECT @JOB_DESC = 'Partner', @DEPARTMENT = '_Banking and Finance' 
END 
ELSE IF @Initials = 'XMA' 
BEGIN 
    SELECT @JOB_DESC = 'Partner', @DEPARTMENT = '_Disputes' 
END 
ELSE 
BEGIN 
    SELECT @JOB_DESC = u.NAME, @DEPARTMENT = u.PracticeAreaName 
    FROM USERS u where u.USERID = @Initials 
END 

select @JOB_DESC 
select @DEPARTMENT 
+0

Легенда! Я мог бы поцеловать тебя! Спасибо - Лидия. –

+0

Рад я мог помочь, но держать поцелуй: | – Jamiec

Смежные вопросы