sql - postgresql:从 Char Varying 字段中提取多个值
问题描述
我在 PostgreSQL 中有一个类型为字符不同 [] 的字段存储在这里是扇区,一些客户没有数据,其他客户有 1 到多个扇区,最终看起来像这样
**Customer** ABC
**Sector** ,Exh: Food Trade,Exh: Beverage Trade,Evt: Sporting
有谁知道我如何查询每个值?给我每个客户的独特价值
**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)
编辑:使用 a 摆脱空元素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)
推荐阅读
- c++ - 返回二叉搜索树特定级别中节点数的函数
- error-handling - ansible-playbook bootstrap.yml 命令中的 tidb-ansible 错误
- mysql - 查询过滤同一列SQL中的相等值和差值
- php - 将用户限制为一个会话
- c# - 取消数据流 ActionBlock 中的特定任务
- python - python - 如何使用pandas或其他方式从python中的CSV文件中拆分值?
- azure-machine-learning-service - anaconda 的 AML 问题
- r - 官员包 - absolute_path(目标)中的错误
- c# - C# WPF - 绑定到 DataGrid 中的父 ViewModel 不起作用
- c++ - 无法在基于 DFS 的任务排序程序中填充“堆栈”