2015-01-06 4 views
1

누구나 Netezza의 필드 값을 기반으로 출력 형식을 다시 지정하는 방법을 알고 있습니까?Netezza 출력 형식 지정

현재이 구문을 사용하여 데이터를 내보내고 있습니다.

\a \t \f , \o export_ntz.txt SELECT field1,field2,field3,field4 FROM tb_normal \o 

현재 결과는 다음과 같이 될 것입니다 :

1234,123A,12 ,123A 
ASd2,123s,312,123A 

가 명물 :

1234 , 123A , 12 , 123A 
ASd2 , 123s , 312 , 123A 

난 그냥 아래의 예에 따라 인쇄 필드를 포맷 할 - 필드 1에 대한 길이의 크기는 4이며, field3은 3입니다. 따라서 내 결과에 컬럼 추가로 수정 된 내용이 수정 될 것입니다.

+0

는 열을 char 또는 VARCHAR입니다 잘 작동합니다 당신의 데이터가있는 패딩이없는 가정? – ScottMcG

답변

0

다음과 같은 수출

CREATE EXTERNAL TABLE 'full_file_path\export_ntz.txt' USING (DELIM ',') AS 
SELECT field1,field2,field3,field4 FROM tb_normal; 
+0

SQL을 시도했지만 상대 경로 반환이 허용되지 않습니다. Scene은 데이터 채우기를하지 않지만 데이터가 null이고 값의 길이만큼 패딩을 인쇄하려면 그런 방식입니까? –

+0

nvl (field1, repeat ('', 5)), nvl (field2, repeat ('', 5)), nvl (field3, repeat ('', 5) ', 5)) FROM tb_normal;' – Niederee

+0

또는 : SELECT substr (rpad (nvl (field1, ''), 4), 1,4), substr (rpad (nvl (field2, ''), 3), 1 , 3), substr (rpad (nvl (field3, ''), 3), 1,3), substr (rpad (nvl (field4, ''), 3), 1,3) FROM tb_normal; ' – Niederee