sql - 雪花中的多轴问题
问题描述
无法在雪花中使用多列枢轴。单列枢轴工作正常。以下是我的查询:
SELECT * FROM ( SELECT DISTINCT geo_lkp.MSA_CD , geo_lkp.MSA_NM, geo_lkp.CSA_CD ,
geo_lkp.CSA_NM
FROM T_GEO_LKP geo_lkp , T_DIM_STATE_PROV state_lkp
WHERE geo_lkp.state_prov_nm = state_lkp.state_prov_cd
AND UPPER(geo_lkp.PSTL_CD) = '12345' AND state_lkp.ISO_3_CHAR_CNTRY_CD = 'USA' )
UNPIVOT( (LOCATION_CODE, LOCATION_NAME) FOR LOCATION_TYPE
IN ( (CSA_CD,CSA_NM) AS 'csa',
(MSA_CD,MSA_NM) AS 'msa') )
ORDER BY LOCATION_NAME
试图转换下表数据:
MSA_CD | MSA_NM | CSA_CD | CSA_NM |
---|---|---|---|
10580 | 奥尔巴尼 | 104 | 奥尔巴尼 |
到
LOCATION_TYPE | LOCATION_CD | LOCATION_NM |
---|---|---|
移动通信系统 | 10580 | 奥尔巴尼 |
csa | 104 | 奥尔巴尼 |
解决方案
我建议使用横向连接和values
:
select v.*
from t cross join lateral
(values ('msa', msa_cd, msa_nm),
('csa', csa_cd, csa_nm)
) v(location_type, location_cd, location_nm)
推荐阅读
- python - 熊猫数据透视表参数
- gdb - 在 MacOS Catalina 上对 GDB 问题进行代码设计
- logstash - Filebeats 说下线但仍然在 Kibana 中看到
- c# - HttpResponseMessage.Content.ReadAsStreamAsync() 与 HttpResponseMessage.Content.ReadAsStringAsync()
- javascript - 如果使用 *ngIf 删除子组件,则会触发 Angular 自定义 clickaway 侦听器
- xcode - Xcode - 从图像中编辑元素
- docker - 一段时间后移除 Kubernetes Pod
- swift - UILabel 的字体颜色在 iOS 12 上没有变化
- javascript - 如何根据用户输入重定向页面?
- routes - BACnet IP 路由与 BACnet 广播管理设备 (BBMD)