2014-06-10 3 views
0

일부 열을 선택하고 각 열의 집합을 한 줄로 표시하지만 필수 형식으로 표시합니다. 첫 번째 데이터 세트는 'AAAA', [LV_WRR], 'D', [LV_WRR] 및 [ID]를 포함하는 127 개의 공백을 사용하지만 [ID]의 길이는 다양하므로 문제가됩니다. [FTA]는 [ID]에서 사용하는 길이를 무시하고 공백 128에서 시작해야합니다.문자/공백을 무시한 채로 공간 남기기

이 I가 지금 무엇을 가지고 :

SELECT 
    'AAAA' 
    + [LV_WRR] 
    + 'D' 
    + [LV_WRR] 
    + [ID] 
    + SPACE(120 - LEN([ID])) 
    + [FTA] 
    + [FT_ID] 
FROM MyTable 

[ID] 열이 서로 다른 길이의 데이터가 있습니다.

아이디어가 있으십니까?

감사합니다.

답변

0

이 시도 :

SELECT 
LEFT('AAAA' + [LV_WRR] + 'D' + [LV_WRR] + [ID] + REPLICATE(' ',127),127) + [FTA] + [FT_ID] 
FROM MyTable 

REPLICATE는 공간의 127 문자 긴 문자열을 만듭니다. 다른 컬럼 값과 상수에 의해 형성된 문자열에 추가됩니다. LEFT 다음이 문자열의 왼쪽 된 127 문자를 취하고 [FTA][FT_ID] 열의 값을 추가합니다. 결과적으로 FTA의 값은 항상 128 위치에서 시작됩니다.

샘플 데모는입니다.

+0

답해 주셔서 감사합니다.하지만 SQL Server 2008에서 다른 결과가 나타납니다. 'pqrs'가 정렬되지 않았습니다. – user1330343

+0

SQL Server 2008 R2를 사용해 보았는데 데모마다 정렬되었습니다. 몇 가지 샘플 데이터로 SQLFiddle을 설정하는 데 도움을 주시겠습니까? 결과를 재현 할 수 있습니까? –

+0

작동하도록했습니다. 내 잘못이야. 고마워요! – user1330343