Postgres에서 열을 여러 행으로 분할
텍스트가 포함된 열과 정수 플래그가 포함된 다른 열이 있는 테이블이 있는 경우 해당 플래그 값을 유지하면서 텍스트 열의 각 단어가 새 테이블의 별도 행이 되는 새 형식으로 테이블을 변환해야 합니다. 이 기사에서는 Postgres를 사용하여 이를 달성하는 방법을 살펴봅니다.
한 가지 효과적인 방법은 Postgres 14 이상에서 string_to_table() 함수와 함께 LATERAL 조인을 활용하는 것입니다. LATERAL 키워드는 조인에 적용되어 상위 테이블의 각 행에 대해 여러 행을 반환하는 SRF(집합 반환 함수)를 생성합니다. string_to_table() 함수는 텍스트 열을 개별 단어로 분할하여 각 단어에 대해 새 행을 만듭니다.
예를 들어 다음 쿼리를 고려해 보세요.
SELECT token, flag FROM tbl, string_to_table(subject, ' ') AS token WHERE flag = 2;
이 쿼리는 LATERAL 조인을 수행합니다. tbl 테이블과 주제 열을 공백으로 분할하여 토큰화하는 SRF string_to_table(subject, ' ') 사이. WHERE 절은 플래그 열이 2인 행을 포함하도록 결과를 필터링합니다. 결과적으로 출력 테이블에는 해당 플래그 값과 함께 주제 열의 각 단어에 대해 하나의 행이 포함됩니다.
In Postgres 13 이하에서는 string_to_table(subject, ' ') 대신 unnest(string_to_array(subject, ' '))를 사용할 수 있습니다.
위 내용은 Postgres에서 텍스트 열을 여러 행으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!