简体   繁体   English

postgresql:从字符变化字段中提取多个值

[英]postgresql: extract multiple values from Char Varying field

I have a field in PostgreSQL of type character varying [] stored here is sector, some customers have no data, others have 1 to many sectors which ends up looking like this我在 PostgreSQL 中有一个类型字符不同的字段 [] 存储在这里是扇区,有些客户没有数据,其他客户有 1 到多个扇区,最终看起来像这样

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

does any one know how I could query this out per value?有谁知道我如何按值查询? to give me the unique values per customer给我每个客户的独特价值

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

Try using unnest .尝试使用unnest

Test Data测试数据

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

Query询问

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

Edit : Getting rid of empty elements using a CTE (see comments)编辑:使用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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM