postgresql 字符串合并成数组
时间: 2023-06-28 14:15:59 浏览: 76
如果你想要将多个字符串合并成一个数组,可以使用 PostgreSQL 内置的 `array_agg` 函数。这个函数可以将一个列中的多个值聚合成一个数组。例如,如果你有一个表 `my_table`,其中有两个字段 `name` 和 `age`,你想要将所有的 `name` 字段合并成一个数组,可以使用以下 SQL 语句:
```sql
SELECT array_agg(name) as names
FROM my_table;
```
这将返回一个结果集,其中只有一条记录,它包含了所有 `name` 字段值的数组。
如果你想要将多个字段合并成一个数组,则需要先将这些字段合并成一个字符串,然后再使用 `array_agg` 函数。例如,如果你有一个表 `my_table`,其中有三个字段 `name`、`age` 和 `city`,你想要将每一行中的这三个字段合并成一个数组,可以使用以下 SQL 语句:
```sql
SELECT array_agg(concat_ws(', ', name, age, city)) as info
FROM my_table;
```
这将返回一个结果集,其中每个记录都包含了该行中三个字段合并成的字符串所组成的数组。
相关问题
postgresql 字符串合并成json
你可以使用 PostgreSQL 的内置函数 `json_agg` 将多个字符串合并成一个 JSON 数组。例如,假设你有一个 `users` 表,每行包含一个 `name` 字段:
```
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(50)
);
INSERT INTO users (name) VALUES ('Alice'), ('Bob'), ('Charlie');
```
现在你想将所有用户名合并成一个 JSON 数组,可以使用以下查询语句:
```
SELECT json_agg(name) FROM users;
```
这将返回以下结果:
```
json_agg
-----------------------------
["Alice", "Bob", "Charlie"]
(1 row)
```
如果你想将 JSON 数组嵌入到另一个 JSON 对象中,你可以使用 PostgreSQL 的 `json_build_object` 函数。例如,以下查询将返回一个包含用户列表的 JSON 对象:
```
SELECT json_build_object('users', json_agg(name)) FROM users;
```
这将返回以下结果:
```
json_build_object
----------------------------------
{"users" : ["Alice", "Bob", "Charlie"]}
(1 row)
```
Postgresql字符串转数组
以下是两种将字符串转换为PostgreSQL数组的方法:
1. 使用pg-array模块
```javascript
// 首先安装pg-array模块
// npm install pg-array
const pgArray = require('pg-array');
const str = 'node, ruby, rust';
const arr = pgArray.parse(str);
console.log(arr); // 输出:['node', 'ruby', 'rust']
```
2. 使用PostgreSQL内置函数string_to_array
```sql
SELECT string_to_array('A,I,H5,M', ',');
-- 输出:{A,I,H5,M}
```