Postgres에서는 텍스트 유형의 단일 열이 있는 테이블을 여러 행이 있는 테이블로 변환해야 할 수 있습니다. 각 행은 텍스트 열의 토큰을 나타냅니다.
다음 소스 테이블을 고려하십시오.
</p> <table> <thead><tr> <th>subject</th> <th>flag</th> </tr></thead> <tbody><tr> <td>this is a test</td> <td>2</td> </tr></tbody> </table> <p>
원하는 출력은 다음이 포함된 테이블입니다. 둘 열:
</p> <table> <thead><tr> <th>token</th> <th>flag</th> </tr></thead> <tbody> <tr> <td>this</td> <td>2</td> </tr> <tr> <td>is</td> <td>2</td> </tr> <tr> <td>a</td> <td>2</td> </tr> <tr> <td>test</td> <td>2</td> </tr> </tbody> </table> <p>
Postgres 14 이상의 경우 LATERAL 이 변환을 달성하기 위해 string_to_table() 함수와 함께 Join을 사용할 수 있습니다. 쿼리의 최소 형식은 다음과 같습니다.
SELECT token, flag FROM tbl, string_to_table(subject, ' ') token WHERE flag = 2;
Postgres 13 이하의 경우 string_to_table(subject, ' ') 대신 unnest(string_to_array(subject, ' '))를 사용해야 합니다.
string_to_table() 함수는 제목 열을 플래그 열에 대해 동일한 값을 사용하여 각 행에 대해 하나씩 별도의 토큰으로 분할합니다. WHERE 절은 결과를 필터링하여 값 2로 플래그가 지정된 토큰만 표시합니다.
이 솔루션은 Postgres에서 텍스트 열을 개별 행으로 분할하는 간결하고 효율적인 방법을 제공합니다.
위 내용은 PostgreSQL에서 텍스트 열을 여러 행으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!