2017-02-20 1 views
0

redshift에서 나는 아래의 코드를 사용하고 있습니다.하지만 첫 번째 특수 문자 위치 만 얻고 있습니다.redshift db의 열에서 두 번째 및 세 번째 발생 문자 (,)를 찾는 방법은 무엇입니까?

SELECT ID, REGEXP_INSTR (아이디, ','), REGEXP_INSTR (아이디, ',', 2) 시험

+0

구문 분석하려는 레코드의 예를 제공 할 수 있습니까? –

+0

5434980cd70ba0c37d0028, 544976cae79548b16810, 55afdbe672450000a01과 같은 내 기록입니다. 그래서 (,) 값의 1, 2, 3 번째 위치를 원합니다. – Velu

+0

왜 그 위치를 찾고 싶습니까? 필드에서 개별 요소를 파싱하는 것입니까? –

답변

0

에서 당신은 궁극적으로 개별 필드 값을 원하는 쉼표의 단지 위치하는 경우 SPLIT_PART :

select split_part(id, ',', 1) id1, 
    split_part(id, ',', 2) id2, 
    split_part(id, ',', 3) id3 
from (select '5434980cd70ba0c37d0028, 544976cae79548b16810, 55afdbe672450000a01' id); 

      id1   |   id2   |   id3 
------------------------+-----------------------+---------------------- 
5434980cd70ba0c37d0028 | 544976cae79548b16810 | 55afdbe672450000a01 
(1 row) 
+0

감사합니다. 완벽하게 작동 – Velu

관련 문제