Sql server 2008 CASE语句添加前导零0 SQL
我有一个案例陈述,看起来像这样Sql server 2008 CASE语句添加前导零0 SQL,sql-server-2008,tsql,sql-server-2008-r2,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'作为sql\u变体),但我将使用这个select作为一个insert语句插入到一个表中,它是一个nvarchar字段,所以它不喜欢这样 有什么想法吗?谢谢我在SQL 2008R2上尝试了您的查询,效果很好 您始终可以这样做
SELECT
Location,
CASE WHEN id BETWEEN 1 AND 7 THEN '05' ELSE '01' END AS id
FROM Locations
但是,它返回5或1,不带前导零
我已经尝试了CAST('05'作为sql\u变体)
,但我将使用这个select作为一个insert语句插入到一个表中,它是一个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
您是将值绑定到变量中还是直接插入到另一个表中?
前任:
插入表2中选择…选择
位置,
如果id介于1和7之间,则转换(nvarchar,'05'),否则转换(nvarchar,'01')结束为id
从地点
will do不应去掉前导零,因为两个分支都是字符串。您如何运行查询?它应该显示
'05'
或'01'
。除非这是一个子查询联合到另一个子查询,该子查询有整数列,并且这些值被转换。不,这实际上是完整的选择无子查询等。您对结果做了什么?您要将它们插入到表中吗?如果是的话,这是什么定义?您是否在应用程序中查看它们?如果是这样的话,那又怎样?谢谢,工作了一顿,不知道为什么另一句话不起作用