pgsql字符串 单列转换成多列
时间: 2023-07-30 21:04:43 浏览: 59
可以使用 PostgreSQL 的 `string_to_array` 函数将单列字符串转换为多列,然后再使用 `unnest` 函数将数组展开成多行。
假设有一个名为 `mytable` 的表,其中有一个名为 `mystring` 的字符串列,需要将其转换为多列:
```sql
SELECT
unnest(string_to_array(mystring, ',')) AS col1,
unnest(string_to_array(mystring, ',')) AS col2,
unnest(string_to_array(mystring, ',')) AS col3
FROM mytable;
```
上述 SQL 查询将会把 `mystring` 列中的字符串按照逗号分隔符转换为数组,然后使用 `unnest` 函数将数组展开成三列。你可以根据需要将 `col1`, `col2`, `col3` 改为自己需要的列名。
相关问题
pgsql 字符串转换成数字
在 PostgreSQL 中,你可以使用 `::` 运算符将字符串转换为数字。下面是一些示例:
1. 将字符串转换为整数:
```sql
SELECT '123'::integer;
```
2. 将字符串转换为浮点数:
```sql
SELECT '3.14'::float;
```
请注意,在进行转换之前,请确保字符串的格式与目标数据类型兼容,否则可能会出现错误。
pgsql字符串列转行
你可以使用 PostgreSQL 内置的 `unnest()` 函数和数组操作符 `||` 将字符串列转换为多行。
假设你有一个名为 `string_column` 的字符串列,每个单元格中包含以逗号分隔的值。你可以使用以下查询将其转换为多行:
```
SELECT unnest(string_to_array(string_column, ',')) AS new_column
FROM your_table;
```
这将把 `string_column` 的每个单元格拆分成一个数组,然后使用 `unnest()` 函数将数组展开为多行。`new_column` 列将包含原始字符串列中的每个单独的值,每个值将在单独的行中出现。
如果你想保留原始行的信息,你可以使用以下查询:
```
SELECT original_column, unnest(string_to_array(string_column, ',')) AS new_column
FROM your_table;
```
这将在每个新行中包含原始行的信息,以及该行中的单个值。