SQL - 如何使用CASE

时间:2012-04-22 16:52:43

标签: sql

Select Lastname, Firstnme, Sex, 

Case When Sex = F Then ‘female’ Else ‘male’ End 

Birthdate From Employee Order by Lastname

这是我的代码,但是case语句不会这样工作,锄头我能意识到吗?

感谢

3 个答案:

答案 0 :(得分:4)

将'F'放在引号中:

Select Lastname, Firstnme, Sex, 
Case 
When Sex = 'F' Then 'female' 
When Sex = 'M' Then 'male'
ELSE 'Unknown'
End as Sex_string, Birthdate 
From Employee Order by Lastname

或者

Select Lastname, Firstnme, Sex, 
Case Sex
When 'F' Then 'female' 
When 'M' Then 'male'
ELSE 'Unknown'
End as Sex_string, Birthdate 
From Employee Order by Lastname

答案 1 :(得分:2)

我相信你想要的东西:

select Lastname, Firstnme, 
Sex = Case 
     When Sex = 'F' Then ‘female’ 
     Else ‘male’ 
     End, 
 Birthdate 
 From Employee Order by Lastname

这里的区别在于您必须设置Sex = Case然后在case语句后面加一个逗号,以便它知道Birthdate是另一个字段。

这是为SQL服务器编写的,如果您使用的是MySql,或者其他一些RDBMS,您的里程可能会有所不同。

答案 2 :(得分:0)

SELECT firstname, lastname, birthdate, sex,
     CASE sex
       WHEN 'F' THEN 'Female'
       WHEN 'M' THEN 'Male'
       ELSE 'Unknown'
     END AS gender
FROM EMPLOYEE
ORDER BY lastname;

你可以将第二个WHEN子句从CASE子句中删除,让ELSE子句处理非女性的任何内容,但通常有三个性别值 - 男性,女性和未知。上面的脚本记录了第三个变量,并将所有记录作为男性,女性或未知记录返回。