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
答案 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