2010-12-15 3 views
0
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'이어야합니다 (공백 포함). 끝에 char로 변환되었지만 공백으로 완료

나는 이런 식으로 뭔가를 원하는 :

123  456 
985454  232355 

값이 null의 경우, 내가

어떤 생각 빈 빈 (8)의 공간 또는 10가?

감사합니다,

갱신 1 : 내가 원하는 결과는 당신이 자동으로 길이를해야합니다 char(8)로 정수를 변환 할 때 당신은 REPLICATE 필요하지 않습니다

  1001335 
     1001335 
12401886 10994 

alt text

+0

2 행의 더하기 기호가 –

+0

예 제거 잘못된 것 같다 있지만 –

답변

3

입니다 8 자입니다.

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

UPDATE

죄송합니다, 당신은 그렇지가 0이 될 IsNull 전에 char로 변환해야합니다. 이처럼

가 :

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 
+0

당신이 크리스-I @ –

+0

갱신 1 볼 수 문제가 아니다 - 나는 내 대답을 업데이 트했습니다, 감사 – codingbadger

+0

죄송합니다. 0을 생성하는 쿼리를 찾지 못했습니다. –

관련 문제