2008-12-17 75 views
5

我在表中有兩個字段。其中一個包含BTA,BEA,REA等值。另一個包含1,2,63,103等值。如何在sql中連接兩個字符串並用0填充一個字符串?

我想結合這兩個領域,所以他們看起來像這個BTA001,BTA002,BTA063,BTA103。

注意一下,如果號碼不是長度爲3個字符,我想墊一些0的對數的左邊,使其等於3

我怎麼會去這樣做呢?在表中的字段被稱爲類型對應於BTA,BEA和REA和Id是對應於1,2,63場,和103

回答

9
select Type + right('00' + cast(id as varchar(10)), 3) 
from ... 

編輯:如果ID可以爲空和你想一個零顯示,你可以這樣做:

select Type + right('00' + cast(isnull(id, 0) as varchar(10)), 3) 
from ... 
+0

你的答案和學習的主要區別是什麼? – Xaisoft 2008-12-17 18:14:26

+0

很少。我做了一個假設,你總是會從Id列中得到一個單位數字,在這種情況下,你只需要添加兩個零。 CAST是ANSI標準的(因此是可移植的),而CONVERT是SQL Server特有的,但爲您提供了更靈活的轉換選項。 – RedFilter 2008-12-17 18:29:12

1

選擇 C1 +右(( '000' + CAST(C2爲爲nvarchar(10)),3)

從T1

1

select FIELD1 + RI GHT('000'+ CONVERT(VARCHAR,FIELD2),3)

相關問題