2010-11-23 5 views
2

Lorsque j'exécute une requête 'SELECT nom, Age, ville de Contacts', j'obtiens quelques centaines de lignes.Diviser Résultats dans la catégorie utilisant l'expression LIKE

Je veux diviser les résultats après la requête exécute, comme ce

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

Ici, le champ État est calculé en fonction de l'exemple d'âge:

âge> = 12 et < 16 Status = Jeune
âge> = 16 et < 22 Status = Mature
âge> = 23 et < 35 Status = Adult

et ainsi de suite

Comment puis-je utiliser la requête mieux possible pour obtenir la sortie si elle est exécutée sur quelques centaines de lignes

Mise à jour: Je veux aussi savoir qu'au lieu de numérique (Age) si je devais l'utiliser sur un champ de chaîne utilisant l'opérateur LIKE, comment le ferais-je?

Répondre

1

La construction case when peut faire ce que vous cherchez.

Exemple forme que prend le 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