转换为char但complet为空

时间:2010-12-15 08:20:40

标签: sql sql-server tsql

SELECT 
 ISNULL(CONVERT(CHAR(8), A.field1), REPLICATE(' ', 8)) + 
 ISNULL(CONVERT(CHAR(10), A.field2), REPLICATE(' ', 10)) 
from #tmpTable a

我必须在某些领域进行联合。 Field1和Field2是整数,当我转换为char时,它们必须具有 特定的大小。如果field1的值为123,则结果必须为“123”(空白)。

最后我想要这样的事情:

123        456
985454     232355

如果值为null,则我有一个8或10空白

的空格

有什么想法吗?

谢谢,

UPDATE1: 我需要的结果是

         1001335
         1001335
12401886 10994

alt text

1 个答案:

答案 0 :(得分:3)

将整数转换为REPLICATE时,您不需要char(8),它将自动长度为8个字符。

      Select Convert(Char(8), IsNull(a.Field1,'')) + 
           Convert(Char(10), IsNull(a.Field2,''))
    From #tmpTable

<强>更新

道歉,您需要在char之前转换为IsNull,否则它将为零。

像这样:

Create Table #t
(
Field1 int,
Field2 int
)
Insert Into #t
Select Null, 1001335
union all
select Null, 1001335
union all
select 1445121, 1001335
union all
select 1331445, null


Select IsNull(Convert(Char(8), a.Field1),'') + 
       IsNull(Convert(Char(10), a.Field2),'')
From #t a

Drop table #t