我正在使用SQL Server 2012.我有一个包含列select new map(d.department as dept, new list(d.employee as emp) from Department d group by d.department;
的表,它只能是下面的四个值:
MyCol
当我查询表格中的数据时,我想将这些值改为数值,所以说MN = 1,ABB = 2,BO = 3& BN = 4。
如何使用select语句执行此操作?
答案 0 :(得分:3)
简单CASE
语句将执行:
SELECT
CASE MyCol
WHEN 'MN' THEN 1
WHEN 'ABB' THEN 2
WHEN 'BO' THEN 3
WHEN 'BN' THEN 4
END
FROM
dbo.Yourtable
答案 1 :(得分:2)
SELECT
Case When MyCol = 'MN' Then 1
WHEN MyCol = 'ABB' Then 2
When MyCol = 'BO' Then 3
When MyCol = 'BN' Then 4 End as MyCol
From MyTable
答案 2 :(得分:0)
一种简单的方法是添加一个计算列:
alter table t
add MyColInt as (case MyCol
when 'MN' then 1
when 'ABB' then 2
when 'BO' then 3
when 'BN' then 4
end);
您可以保证值的正确性:
alter table add constraint ck_MyCol check (MyCol in ('MN', 'ABB', 'BO', 'BN'));
但是,我建议您为缩写创建一个参考表。参考表可以包含数字,全名以及其他可能的信息。然后,外键引用可以保证值正确。