2010-11-20 18 views
-2

Ich habe eine Abfrage wie dieseSQL Server CASE-Ausdruck

Es gibt ein Haupt CASE-Ausdruck, wenn das Ergebnis 1 ist, dann muss ich die anderen Fall Anweisungen auszuführen, und andere, die select-Anweisung unten. Diese Abfrage funktioniert nicht. Kann mir jemand helfen

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

was meinst du mit "nicht funktioniert"? Ich sehe bereits zwei Syntaxfehler, aber was versuchst du zu erreichen? Sie möchten nur den Text "Cricket" oder "Football" auswählen? – BeemerGuy

+0

und es würde helfen, wenn Sie Ihren Code mit dem Code-Button beim Bearbeiten der Frage formatieren. – BeemerGuy

+2

Bitte verwenden Sie nur relevante Tags für Ihre Fragen. Das hat nichts mit C# zu tun. –

Antwort

1

Hier ist ein Code, der Ihr Ziel

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 

Wenn Sie Fragen zum Beispiel auf einer Fall-Anweisung unten finden Sie haben weiterhin erreichen kann den Adventure databse verwenden.

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 
Verwandte Themen