2017-06-29 6 views
-1

Hallo Ich arbeite an Abfrage, die CASE verwenden muss. Ich bekomme immer einen Fehler und kann nicht herausfinden warum. Unten ist was ich versucht habe.SQL Server-CASE-Anweisung in T-SQL

SELECT 

    CASE 

    when LineItem like '%Apple%' THEN ProductType = 'Apple' 
    when LineItem like '%Orange' THEN ProductType = 'Orange' 
    when LineItem like '%Strawberry' THEN ProductType = 'Red' 
    when ProductType like 'Yellow' THEN ProductType 
    else ProductType = 'White' 

    end as ProductType 

FROM Fruits 

Der Fehler ich erhalte, ist auf dem "=" Symbole. Ist es nicht möglich, nach dem Schlüsselwort WHEN in T-SQL zwei verschiedene Spalten zu haben?

+0

Sie sich von 'los Product ='. Verwenden Sie einfach 'ELSE' White'' – BJones

+3

Denken Sie daran, dass 'ProductType wie 'Yellow'' als '=' fungiert –

Antwort

1

es so probieren ...

SELECT 
    ProductType = CASE 
         WHEN f.LineItem like '%Apple%' THEN 'Apple' 
         WHEN f.LineItem like '%Orange' THEN 'Orange' 
         WHEN f.LineItem like '%Strawberry' THEN 'Red' 
         WHEN f.ProductType like 'Yellow' THEN f.ProductType 
         ELSE 'White' 
        END 
FROM 
    dbo.Fruits f; 
3

Nur ein Syntaxfehler. Keine Notwendigkeit für Then ProductType = '...'

SELECT 
    CASE 
    when LineItem like '%Apple%' THEN 'Apple' 
    when LineItem like '%Orange' THEN 'Orange' 
    when LineItem like '%Strawberry' THEN 'Red' 
    when ProductType like 'Yellow' THEN ProductType 
    else 'White' 
    end as ProductType 
FROM Fruits