집 >데이터 베이스 >MySQL 튜토리얼 >Postgres에서 텍스트 열을 여러 행으로 분할하는 방법은 무엇입니까?
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!