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

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

Mary-Kate Olsen
풀어 주다: 2025-01-06 21:37:40
원래의
610명이 탐색했습니다.

How to Split a Text Column into Multiple Rows in PostgreSQL?

Postgres에서 열을 행으로 분할

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>

LATERAL 조인을 사용하는 솔루션

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿