Select Lastname, Firstnme, Sex,
Case When Sex = F Then ‘female’ Else ‘male’ End
Birthdate From Employee Order by Lastname
这是我的代码,但是case语句不会这样工作,锄头我能意识到吗?
感谢
答案 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
子句处理非女性的任何内容,但通常有三个性别值 - 男性,女性和未知。上面的脚本记录了第三个变量,并将所有记录作为男性,女性或未知记录返回。