case语句

case语句使用有两种方法:简单表达式和搜索表达式。

1.下面首先看一个简单表达式的例子,case 语句后面跟着一个表达式,然后在when语句和该表达式的值作比较。
 SELECT SalesOrderID,SalesOrderID%10 as LastDigtal,'how choose ?'=CASE SalesOrderID%10

WHEN ProductID%10 THEN 'exact match'
 WHEN ProductID%10-1 THEN 'within one'
 WHEN productID%10+1 THEN 'within 1'
 ELSE 'more than one part'
 END
 FROM Sales.SalesOrderDetail

获取订单号和商品号最后一位,然后根据两者关系,决定结果。

 

 2.把employee中的mr.和mrs.ms.修改为male和female.

empid lastname firstname title titleofcourtesy
1 Davis Sara CEO Ms.
2 Funk Don Vice President, Sales Dr.
3 Lew Judy Sales Manager Ms.
4 Peled Yael Sales Representative Mrs.
5 Buck Sven Sales Manager Mr.
6 Suurs Paul Sales Representative Mr.
7 King Russell Sales Representative Mr.
8 Cameron Maria Sales Representative Ms.
9 Dolgopyatova Zoya Sales Representative Ms.

如果使用case的简单表达式:

SELECT gender=CASE titleofcourtesy
WHEN 'MS.' OR 'Mrs.' THEN 'Female'
WHEN 'Mr' THEN 'male'
ELSE 'Unkown'
END,
* FROM HR.Employees

  这个语句是不合法的。

此时可以使用更加灵活的搜索表达式

SELECT gender=CASE 
WHEN titleofcourtesy IN ('MS.','Mrs.') THEN 'Female'
WHEN titleofcourtesy='Mr.' THEN 'male'
ELSE 'Unkown'
END,
* FROM HR.Employees

  

posted @ 2013-04-27 22:04  viola  阅读(594)  评论(0编辑  收藏  举报