首页 > 解决方案 > 如何使用 SQL 交叉连接而不是 UNPIVOT?

问题描述

我需要在 HANA 中使用以下查询。但是 HANA 中没有 Unpivot 功能。如果我可以在这里使用交叉联接而不是 Unpivot,则很容易转换为 HANA SQL。怎么做?

SELECT p.CardName, REPLACE(p.groupcode1,'QryGroup','') groupcode1, ocqg.GroupName
FROM ocrd UNPIVOT 
( value
 FOR groupcode1 IN ([QryGroup1],[QryGroup2],[QryGroup3],
[QryGroup4],[QryGroup5],[QryGroup6],[QryGroup7],[QryGroup8],
[QryGroup9],[QryGroup10],[QryGroup11],[QryGroup12],[QryGroup13],
[QryGroup14],[QryGroup15],[QryGroup16],[QryGroup17],[QryGroup18],
[QryGroup19],[QryGroup20],[QryGroup21],[QryGroup22],[QryGroup23],
[QryGroup24],[QryGroup25],[QryGroup26],[QryGroup27],[QryGroup28],
[QryGroup29],[QryGroup30],[QryGroup31],[QryGroup32],[QryGroup33],
[QryGroup34],[QryGroup35],[QryGroup36],[QryGroup37],[QryGroup38],
[QryGroup39],[QryGroup40],[QryGroup41],[QryGroup42],[QryGroup43],
[QryGroup44],[QryGroup45],[QryGroup46],[QryGroup47],[QryGroup48],
[QryGroup49],[QryGroup50],[QryGroup51],[QryGroup52],[QryGroup53],
[QryGroup54],[QryGroup55],[QryGroup56],[QryGroup57],[QryGroup58],
[QryGroup59],[QryGroup60],[QryGroup61],[QryGroup62],[QryGroup63],
[QryGroup64])
         ) as p,
         ocqg
    WHERE value = 'Y' and 
    ocqg.GroupCode = REPLACE(p.groupcode1,'QryGroup','')
    order by groupcode1

表结构如下

在此处输入图像描述

标签: sqlsql-serverunpivotcross-join

解决方案


推荐阅读