sql - postgresql:从 Char Varying 字段中提取多个值

标签 sql postgresql

我在 PostgreSQL 中有一个类型为字符变化的字段 [] 这里存储的是扇区,有些客户没有数据,其他客户有1到多个扇区,最终看起来像这样

**Customer**  ABC        
**Sector** ,Exh: Food Trade,Exh: Beverage Trade,Evt: Sporting

有人知道我如何查询每个值吗?为我提供每个客户的独特值(value)

**Customer** ABC **sector** Exh:Food Trade,
**Customer** ABC **sector** Exh:Beverage Trade
**Customer** ABC **Sector** Evt:Sporting

最佳答案

尝试使用unnest .

测试数据

CREATE TABLE t (customer text, sector text[]);
INSERT INTO t VALUES 
('ABC',string_to_array(',Exh: Food Trade,Exh: Beverage Trade,Evt: Sporting',','));

查询

SELECT customer, unnest(sector) FROM t;
 customer |       unnest        
----------+---------------------
 ABC      | 
 ABC      | Exh: Food Trade
 ABC      | Exh: Beverage Trade
 ABC      | Evt: Sporting
(4 Zeilen)

编辑:使用 CTE 删除空元素(见评论)

WITH j AS (
SELECT customer, unnest(sector) as sector FROM t 
) SELECT * FROM j WHERE sector <> '';

 customer |       sector        
----------+---------------------
 ABC      | Exh: Food Trade
 ABC      | Exh: Beverage Trade
 ABC      | Evt: Sporting
(3 Zeilen)

关于sql - postgresql:从 Char Varying 字段中提取多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59209569/

相关文章:

mysql - 是否可以在 mysql 中执行此查询?

mysql - 如何返回一个表中的所有结果以及另一个表中特定字段的计数?

sql - T-SQL - 有没有一种方法可以根据表中指定值的行数动态输出列?

postgresql - TypeORM Postgres 按关系计数过滤

ruby-on-rails - 在 rails 中使用 ActiveRecord 从数据库返回每第 n 行

Python psycopg2 - 记录事件

postgresql - plpython 获取 INSERT TRIGGER 上的所有行

mysql - SQL查询获取数据

mysql - 使用 max() 查询表会产生奇怪的结果

node.js - 如何在 Sequelize 中忽略 SequelizeUniqueConstraintError?