CASE语句添加前导零0 SQL

时间:2012-11-22 16:49:03

标签: sql-server-2008 tsql sql-server-2008-r2

我有一个类似于

的案例陈述
SELECT
Location,
CASE WHEN id BETWEEN 1 AND 7 THEN '05' ELSE '01' END AS id
FROM Locations

然而,这返回5或1而没有前导零。

我已经尝试了CAST('05' AS sql_variant)但是我将把这个select作为插入语句用于表及其nvarchar字段,所以它不喜欢它。

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:1)

我在SQL 2008R2上尝试了你的查询,它工作得很好..

您可以随时执行此操作:

SELECT
 Location,
 right('0'+convert(varchar(2), CASE WHEN id BETWEEN 1 AND 7 THEN '5' ELSE '1' END), 2) AS id
FROM Locations

您是绑定变量中的值还是直接插入另一个表?     例如:     INSERT INTO table2 SELECT ...

答案 1 :(得分:1)

选择 地点, 如果id为BETWEEN 1和7那么转换(nvarchar,'05')ELSE convert(nvarchar,'01')END AS id 来自地点

会做