2008-12-17 76 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)

相关问题