我有一个看起来像这样的案例陈述
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 字段,所以它不喜欢那样。
有任何想法吗?谢谢
我有一个看起来像这样的案例陈述
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 字段,所以它不喜欢那样。
有任何想法吗?谢谢
我在 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 ...
选择位置,当 id 介于 1 和 7 之间时的情况,然后转换(nvarchar,'05')否则转换(nvarchar,'01')作为 id 从位置结束
会做