regexp_split_to_table用法
时间: 2024-09-20 21:13:37 浏览: 112
ajs_lesson_9_regexp:ПродвинутыйJS。 Лекция9.Задача2
`regexp_split_to_table`是PostgreSQL中的一个内建函数,它用于将文本字符串按照正则表达式拆分成一系列行(每个元素作为一行存储)。它的基本语法如下:
```sql
SELECT unnest(regexp_split_to_table(your_string, pattern))
FROM your_table;
```
其中:
- `your_string`是你想要拆分的字符串。
- `pattern`是你使用的正则表达式,例如`,`、`\s+`(匹配一个或多个空白字符)、或者是自定义的模式来确定何处拆分。
例如,如果你想把名字字段以逗号分隔的姓名拆分为两列(如"John Doe"拆为"John"和"Doe"),你可以这样做:
```sql
SELECT first_name, last_name
FROM (
SELECT unnest(regexp_split_to_table(names_column, ',')) AS name_part
FROM your_table
) t
CROSS JOIN LATERAL (
CASE
WHEN position('.') > 0 THEN substring(name_part from 1 for position('.') - 1)
ELSE name_part
END AS first_name,
CASE
WHEN position('.') > 0 THEN substring(name_part from position('.') + 1)
ELSE NULL
END AS last_name
);
```
阅读全文