[SQL] 포스트 그레스에서 여러 행으로 분할 열
SQL포스트 그레스에서 여러 행으로 분할 열
나는이 같은 테이블이 있다고 가정하자 :
subject | flag
----------------+------
this is a test | 2
주제는 text 형식이며, 플래그는 int 타입이다. 나는 포스트 그레스에서이 같은이 테이블을 변환하고 싶습니다 :
token | flag
----------------+------
this | 2
is | 2
a | 2
test | 2
이 작업을 수행하는 쉬운 방법이 있습니까?
해결법
-
==============================
1.포스트 그레스에서 조인 측면 사용 9.3+ :
포스트 그레스에서 조인 측면 사용 9.3+ :
SELECT s.token, flag FROM tbl t, unnest(string_to_array(t.subject, ' ')) s(token) WHERE flag = 2;
측면의 속기 양식이 조인 주에만 unnest 경우 () 실제로 행을 반환 행을 반환합니다.
당신은 또한) (regexp_split_to_table 사용할 수 있지만 정규 표현식 매칭이 좀 더 비용 때문는 일반적으로 느리다. 관련 :
-
==============================
2.나는 그것이 그것을해야한다) string_to_array (과 함께, 단지 unnest () 함수를 조인을 사용하지 않아도 생각 :
나는 그것이 그것을해야한다) string_to_array (과 함께, 단지 unnest () 함수를 조인을 사용하지 않아도 생각 :
SELECT unnest(string_to_array(subject, ' ')) as "token", flag FROM test; unnest | token -------+------- this | 2 is | 2 a | 2 test | 2
from https://stackoverflow.com/questions/29419993/split-column-into-multiple-rows-in-postgres by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL의 GROUP_CONCAT 중복 (0) | 2020.05.23 |
---|---|
[SQL] 오라클의 FROM 절없이 선택 (0) | 2020.05.23 |
[SQL] SQL 관리 스튜디오에서 CommandTimeout이 변경 (0) | 2020.05.23 |
[SQL] EXISTS보다 내부가 제공하는 더 나은 성능을 가입 할 수 있습니다 (0) | 2020.05.23 |
[SQL] MySQL은 : 0에 NULL를 타입 캐스팅 (0) | 2020.05.23 |