0

我有一个看起来像这样的案例陈述

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 字段,所以它不喜欢那样。

有任何想法吗?谢谢

4

2 回答 2

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 ...

于 2012-11-22T16:57:14.680 回答
1

选择位置,当 id 介于 1 和 7 之间时的情况,然后转换(nvarchar,'05')否则转换(nvarchar,'01')作为 id 从位置结束

会做

于 2012-11-22T22:15:54.673 回答