pgsql语句('1,2,3')转换成('1',2','3')
时间: 2024-09-15 14:10:22 浏览: 34
postgis-shp2pgsql
在PostgreSQL中,如果你有一个包含逗号分隔值(CSV)的字符串 '1,2,3',并且想将其转换成单引号包围的元组形式 ('1', '2', '3'),你可以使用数组函数来处理。首先,你需要将这个字符串解析为数组,然后用数组的其他操作将其格式化。
假设 `val` 是你原始的 CSV 字符串,可以使用以下 SQL 语句进行转换:
```sql
WITH csv_array AS (
SELECT unnest(string_to_array(val, ',')) AS single_value
)
SELECT string_agg(single_value, ''',''') AS formatted_values
FROM csv_array;
```
这会创建一个名为 `csv_array` 的临时表,其中 `single_value` 列包含了每个单独的元素,然后使用 `string_agg` 函数将它们连接起来,中间用逗号和空格分隔,形成新的字符串。
如果你想保持每个值都有单引号,你可以稍微修改一下 `string_agg` 函数:
```sql
SELECT string_agg(format('%L', single_value), ''',''') AS formatted_values
FROM csv_array;
```
这里使用 `%L` 格式化选项会自动给每个元素加上单引号。
阅读全文