2010-11-20 2 views
-2

Я запрос, как этотSQL СЛУЧАЙ сервера Expression

Существует основное выражение CASE, если результат равен 1, то мне нужно выполнить другие операторы дела, и еще, выберите заявление ниже. Этот запрос не работает. Может кто-нибудь помочь мне

DECLARE @sportCodeID INT; 
SELECT @sportCodeID = sport_code_id FROM jobs dlj where dlj.id = id; 

(CASE WHEN (SELECT sport_code_id FROM jobs dlj WHERE dlj.id = id) = 1 THEN 

CASE WHEN dl.action = 'C' THEN 'Cricker' 

WHEN dl.action = 'F' THEN 'FOOTBALL' 

) 
(ELSE 
(SELECT sport_codes from action_codes ac WHERE ac.id = @sportCodeID) 

)END [Action] 
+0

Что вы подразумеваете под "нерабочим"? Я уже вижу две ошибки синтаксиса, но что вы пытаетесь выполнить? Вы просто хотите выбрать текст «Крикет» или «Футбол»? – BeemerGuy

+0

, и это поможет, если вы форматируете свой код с помощью кнопки кода при редактировании вопроса. – BeemerGuy

+2

, пожалуйста, используйте только соответствующие теги для своих вопросов. Это не имеет никакого отношения к C#. –

ответ

1

Вот код, который может отпишется

declare @jobs table(id int identity (1,1), sport_code_Id int) 
insert @jobs (sport_code_Id) 
Select 1 UNION ALL 
Select 2 UNION ALL 
Select 3 UNION ALL 
Select 4 

declare @action_codes table (id int identity(1,1), sport_codes char(1)) 
Insert @action_codes (sport_codes) 
Select '1' UNION ALL 
Select 'F' UNION ALL 
Select 'C' UNION ALL 
Select '4' 

Select * from @action_codes 
Select * from @jobs 

DECLARE @sportCodeID INT; 
SELECT @sportCodeID = sport_code_id FROM @jobs dlj where dlj.id = 1; 
select @sportCodeID 
SELECT 
    CASE sport_codes 
     WHEN 'F' THEN 'Football' 
     WHEN 'C' THEN 'Criket' 
     ELSE sport_codes 
    END 
FROM @action_codes 
WHERE id = @sportCodeID 

Если вы по-прежнему есть вопросы, пожалуйста, обратитесь к приведенному ниже примеру на саз, используя Databse AdventureWorks.

USE AdventureWorks2008; 
GO 
SELECT ProductNumber, Category = 
     CASE ProductLine 
     WHEN 'R' THEN 'Road' 
     WHEN 'M' THEN 'Mountain' 
     WHEN 'T' THEN 'Touring' 
     WHEN 'S' THEN 'Other sale items' 
     ELSE 'Not for sale' 
     END, 
    Name 
FROM Production.Product 
ORDER BY ProductNumber; 
GO 
Смежные вопросы