2017-12-11 21 views
0

다음 샘플 세트와 같은 표가 있습니다.하이브 문자열의 출력 표에있는 값으로 바꿀 함수

ColA 
AAAA 
BBBB 
CCCC 

출력을 얻으려는 다음 쿼리를 사용했습니다.

SELECT LPAD (ColA,5,'0')FROM TableName; 

출력이 다음과 같이 표시됩니다.

ColA 
    0AAAA 
    0BBBB 
    0CCCC  

하지만 테이블의 값을 출력 값으로 바꾸고 싶습니다. 가능한가? 예인 경우 도움을 받으실 수 있습니다!

+0

, 당신은 확실히 출력으로 값을 저장할 수 있습니다. Integer에서만 선행 0을 절단합니다. –

답변

1

당신은 자체에서 덮어 쓰기 테이블을 삽입 할 수 있습니다 : 당신이 열 "콜라"문자열 인 경우

insert overwrite table TableName 
SELECT LPAD (ColA,5,'0') as ColA, 
     ColB, 
     ... 
     ColN 
    FROM TableName; 
+0

응답 주셔서 감사하지만,이 집합에서 하나의 열을 부여했지만 내 데이터에 여러 열이 있습니다. 그래서 덮어 쓰기를 사용하려고 할 때 단 1 열만 변경해야합니다. 예외를 throw합니다. 테이블 insclause - 0은 5 개의 열을 가지고 있지만 쿼리는 1 개의 열을가집니다. – Shubzumt

+0

@Shubzumt 물론 원래 테이블에서 모든 열을 추가해야합니다. 동일한 순서, 같은 수의 열이어야합니다. – leftjoin

+0

@Shubzumt 업데이트 된 답변보기. select 문에서의 열 순서는 동일해야합니다 – leftjoin