2012-11-22 41 views
0

我有一個case語句看起來像這樣CASE語句添加領先的零0 SQL

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字段,所以它不是那樣的。

任何想法?由於

+0

不應該去掉前導零,因爲兩個分支都是字符串。 –

+0

你如何運行查詢?它應該顯示「05」或「01」。除非這是一個子查詢聯合到其他具有整數列的子查詢,並且這些值被轉換。 –

+0

不,這是從字面上完整的SELECT no子查詢等 – DtotheG

回答

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表2 SELECT ...

+0

謝謝,工作過,不知道爲什麼其他陳述不起作用 – DtotheG

1

選擇 位置, CASE WHEN ID爲1到7再轉換(nvarchar的,'05 ')ELSE轉換(nvarchar的,'01')END AS標識 FROM地址

會做