使用LIKE表达式将结果划分为类别

时间:2010-11-23 11:03:52

标签: sql-server sql-server-2005

当我运行查询'SELECT name,Age,来自联系人的城市'时,我会得到几百行。

我想在查询执行后划分结果,就像这个

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

此处状态字段的计算取决于年龄,例如:

年龄> = 12且< 16状态=年轻
年龄> = 16且< 22状态=成熟
年龄> = 23并且< 35状态=成人

等等

如果在几百行上运行,我如何使用最佳查询来获取输出

更新:我还想知道如果我必须使用LIKE运算符在字符串字段上使用它,而不是数字(Age),我该怎么做?

2 个答案:

答案 0 :(得分:1)

case when构造可以做你想要的。

从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

答案 1 :(得分:0)

您可以使用CTE