>데이터 베이스 >MySQL 튜토리얼 >Postgres에서 텍스트 열을 여러 행으로 분할하는 방법은 무엇입니까?

Postgres에서 텍스트 열을 여러 행으로 분할하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-07 00:41:41367검색

How to Split a Column of Text into Multiple Rows in 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.