首页 > 解决方案 > 雪花中的多轴问题

问题描述

无法在雪花中使用多列枢轴。单列枢轴工作正常。以下是我的查询:

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 奥尔巴尼

标签: sqlsnowflake-cloud-data-platformsnowflake-schema

解决方案


我建议使用横向连接和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)

         

推荐阅读