在Postgres 中,可能需要將具有單列文字類型的表轉換為具有多行的表,其中每行代表文字列中的一個標記。
考慮以下來源表:
subject | flag |
---|---|
this is a test | 2 |
所需的輸出是一個表,其中二列:
token | flag |
---|---|
this | 2 |
is | 2 |
a | 2 |
test | 2 |
對於 Postgres 14 及更高版本,LATERAL join 可以與 string_to_table() 函數一起使用來實現此轉換。查詢的最小形式是:
SELECT token, flag FROM tbl, string_to_table(subject, ' ') token WHERE flag = 2;
對於 Postgres 13 及更早版本,應使用 unnest(string_to_array(subject, ' ')) 而不是 string_to_table(subject, ' ')。
string_to_table() 函數將主題列拆分為單獨的標記,每一行一個標記,標記具有相同的值 柱子。 WHERE 子句過濾結果,僅顯示標記為 2 的標記。
此解決方案提供了一種簡潔高效的方法,可在 Postgres 中將文字列拆分為單獨的行。
以上是如何在 PostgreSQL 中將文字列拆分為多行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!