2010-11-23 6 views
2

Wenn ich eine Abfrage ausführen "SELECT Name, Alter, Stadt aus Kontakte" bekomme ich ein paar hundert Zeilen.Teilen Ergebnisse in Kategorie mit LIKE Ausdruck

Ich möchte die Ergebnisse teilen, nachdem die Abfrage ausgeführt wird, wie diese

**Name Age Status** 
ABC 12 Young 
DFD 14 Young 
JGH 19 Mature 
ITR 18 Mature 
DLE 29 Adult 
MJE 23 Adult 

Hier wird das Statusfeld wird berechnet je nach Alter zB:

Alter> = 12 und < 16 Status = Junge
Alter> = 16 und < 22 Status = Mature
Alter> = 23 und < 35 Status = Adult

und so weiter

Wie kann ich am besten möglich Abfrage verwenden, um die Ausgabe zu erhalten, wenn

Update zu einigen hundert Zeilen laufen: Ich mag auch, dass statt wissen, von numerischem (Alter), wenn ich dies auf verwenden musste ein String-Feld mit LIKE-Operator, wie würde ich es tun?

Antwort

1

Das case when Konstrukt kann tun, was Sie suchen verwenden.

Beispiel genommen bilden die MSDN:

USE AdventureWorks2008R2; 
GO 
SELECT ProductNumber, Name, 'Price Range' = 
     CASE 
     WHEN ListPrice = 0 THEN 'Mfg item - not for resale' 
     WHEN ListPrice < 50 THEN 'Under $50' 
     WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250' 
     WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000' 
     ELSE 'Over $1000' 
     END 
FROM Production.Product 
ORDER BY ProductNumber ; 
GO 
Verwandte Themen