透視條款

適用於:檢查標記是的磚的SQL檢查標記是的磚運行時12.0及以後。

變換的行table_reference旋轉的列行和列列崩潰:第一個新列包含原始列組名稱(或別名的)值,這列是跟著一群列每一列的值組。

語法

table_reference透視({包括零位|排除零位}]{single_value|multi_value}(value_columnunpivot_column({column_name(column_alias]}(,]))(table_alias]single_value(value_columnunpivot_column({column_name(column_alias]}(,]))multi_value((value_column(,])unpivot_column({(column_name(,])(column_alias]}(,]))

參數

  • table_reference

    標識的主題透視操作。

  • 包括零位排除零位

    是否,過濾掉行value_column。默認值是排除零位

  • value_column

    一個不合格的列別名。本專欄將持有的價值觀。的類型決定value_column是最常見的一種對應的嗎column_name列類型。

  • unpivot_column

    一個不合格的列別名。本專欄將旋轉的名稱column_name年代或其column_alias年代的類型unpivot_column字符串

    對於多值透視的值將被連接“_”分離column_name年代,如果沒有column_alias

  • column_name

    標識列將un-pivoted的關係。這個名字可能是合格的。所有column_name年代必須共享一個少見的類型。

  • column_alias

    一個可選名稱中使用的unpivot_column

  • table_alias

    結果表(可選)指定一個標簽。如果table_alias包括column_identifier年代數量必須匹配產生的列數透視

結果

臨時表下麵的形式:

  • 所有的列table_reference除命名為column_name年代。

  • unpivot_column類型的字符串

  • value_column年代最常見的類型的匹配column_name年代。

例子

- >創建或替換臨時視圖上單個列透視銷售(位置、年q1、q2、q3 q4)作為值(“多倫多”,2020,100,80,70,150),(零“舊金山”,2020年,20年,50,60),(“多倫多”,2021,110,90,80,170),(“三藩市”,2021,70,120,85,105);> SELECT *從銷售透視包括null(銷售季度(q1‘Jan-Mar’,是‘Apr-Jun’,第三季度“Jul-Sep”,銷售。第四季度Oct-Dec));位置今年一季度銷售- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -多倫多2020 Jan-Mar 100多倫多2020 Apr-Jun 80多倫多2020 Jul-Sep 70多倫多2020 Oct-Dec 150舊金山2020 Jan-Mar零舊金山2020 Apr-Jun 20舊金山2020 Jul-Sep 50舊金山2020 Oct-Dec 60多倫多2021 Jan-Mar 110多倫多2021 Apr-Jun 90多倫多2021 Jul-Sep 80多倫多2021年Oct-Dec 170年舊金山2021 Jan-Mar 70舊金山2021 Apr-Jun 120舊金山2021 Jul-Sep 85舊金山2021 Oct-Dec 105——這相當於:>選擇位置,年,內聯(arrays_zip(數組(‘Jan-Mar’,‘Apr-Jun’,‘Jul-Sep’,‘Oct-Dec’),數組(q1、q2,第三、第四季度)))(季度,銷售)銷售;- >創建或替換臨時上多列透視視圖oncall(周,區域,name1 email1, phone1, name2, email2, phone2)作為值(2022,“前端”,“家”,“fred@alwaysup.org”, 15551234567,“屁股”,“fanny@lwaysup.org”, 15552345678),(2022年,1,“後端”,“鮑裏斯”,“boris@alwaysup.org”, 15553456789,“潮”,“boomer@lwaysup.org”, 15554567890),(2022年2“前端”、“佛朗基”,“frank@lwaysup.org”, 15555678901,“鰭”,“fin@alwaysup.org”, 15556789012),(2022年2“後端”,“漂亮的”、“bonny@alwaysup.org”, 15557890123,“Bea”、“bea@alwaysup.org”, 15558901234);> SELECT * FROM oncall透視((姓名、電子郵件、電話)的優先級((name1、email1 phone1)為主,(name2, email2 phone2)二級));年周區域優先名字郵件電話- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2022 1前端主要弗雷迪fred@alwaysup.org 15551234567 2022 1前端二級範妮fanny@lwaysup.org 15551234567 2022 1端主要鮑裏斯boris@alwaysup.org 15553456789 2022 1端二次潮boomer@lwaysup.org 15553456789 2022 2前端主佛朗基frank@lwaysup.org 15555678901 2022 2前端二級鰭fin@alwaysup.org 15556789012 2022 2端主要波尼bonny@alwaysup.org 15556789012 2022 2端二次Bea bea@alwaysup.org 15558901234——這相當於:>選擇一年,一周,區域,內聯(arrays_zip(數組(“主”,“中等”),數組(name1 name2),數組(email1 email2),數組(phone1 phone2))),(優先級、名稱、電子郵件、電話)從oncall;