当我运行查询'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),我该怎么做?
答案 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