【发布时间】:2017-09-11 07:21:32
【问题描述】:
我有一个 UserInfo 表,其中有一列名为 [Type] 的数据类型为整数,并且可以包含以下 int 值
Employee -> 0
FormerEmployee ->1
Retiree -> 2
Disabled -> 3
COBRAParticipant -> 4
我正在编写一个 sql 查询,其中用户类型的排序顺序现在应该如下:
Employee, COBRAParticipant, Disabled,Retiree, Former Employee.
使用下面的 order by 子句不会得到预期的结果。
order by CASE U.[Type]
WHEN 0 THEN 'Employee'
WHEN 1 THEN 'COBRAParticipant'
WHEN 2 THEN 'Disabled'
WHEN 3 THEN 'Retiree'
WHEN 4 THEN 'FormerEmployee'
END;
有人可以建议我查询吗?
谢谢!
【问题讨论】:
-
单引号用于字符串文字。列名使用双引号。
-
您会得到什么结果?
-
首先你有
FormerEmployee ->1,然后是WHEN 1 THEN 'COBRAParticipant',实际上只有Employee在它的位置 -
如果你在c#中有枚举,你可以将变量转换为整数,或者使用ToString()来获取枚举的字符串名称。
-
虽然这是在 C# 应用程序下,但问题本身是纯 sql。考虑删除 c# 标签
标签: sql sql-server