適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric 的 SQL 端點分析
Microsoft Fabric 的倉儲
您可以使用 和 關係運算子,將資料表值運算式變更為另一個資料表。 會透過將唯一值從運算式中的某一資料行轉換為輸出中的多個資料行,來旋轉表格值運算式。 也會在最終輸出中所需的任何剩餘數據行值上執行匯總。 藉由將數據表值表達式的數據行旋轉成數據行值,對執行相反的作業 。
的 語法比在複雜數 列語句中可能指定的語法更容易且更容易閱讀。 如需 語法 的完整描述,請參閱 FROM子句。
本文 Transact-SQL 程式碼範例使用 或 範例資料庫,從 Microsoft SQL Server Samples 和 Community Projects (Microsoft SQL Server 範例和社群專案)首頁即可下載。
本節摘要說明如何使用 和 運算符。
運算子的 語法。
運算子的 語法。
子句中的資料行識別碼會依照目錄定序。
- 對於 Azure SQL 資料庫,定序一律為 。
- SQL Server 部分自主資料庫的定序一律為 。
如果資料行與其他資料行結合,就必須使用定序子句 () 來避免衝突。
在 Microsoft Fabric 和 Azure Synapse Analytics 集區中,如果 的非樞紐數據行輸出有 ,則運算符的查詢會失敗。 因應措施是,從 移除非樞紐數據行。 查詢結果相同,因為這個 子句是重複的。
下列程式碼範例會產生包含兩個資料行的資料表,其中有四個資料列。
結果集如下所示。
未定義任何產品,其值為 。
下列程式碼會顯示同樣的結果,但是經過樞紐處理後,讓 值變成了資料行的標題。 即使結果為 ,仍會提供三天的數據行。
結果集如下所示。
當您想要產生跨表格式報表來提供資料摘要時,這個常見的狀況可以顯示出 的用處。 例如,假設您想要查詢 範例資料庫中的 資料表,以判斷某些員工所下的訂單數目。 下列查詢會提供這個報表,並依供應商排序:
以下為部分結果集。
這個子選擇陳述式所傳回的結果,是根據 資料行進行樞紐處理而來。
由 資料行所傳回的唯一值會變成最終結果集中的欄位。 因此,樞紐子句中指定的每個數位都有一個數據行,也就是員工、、、 和 在此範例中。 資料行會當作數值資料行,這是在最終輸出中傳回的資料行 (稱為群組資料行) 所根據以進行分組的資料行。 在此情況下, 函數會對群組資料行進行彙總。 出現警告訊息,指出計算每位員工時,不會考慮數據行中出現的任何 Null 值。
執行的作業則幾乎與 相反,它會將資料行旋轉成資料列。 假設上述範例中所產生的資料表在資料庫中是儲存為 ,而現在您想要將資料行識別碼 、、、 和 旋轉成對應到特定供應商的資料列值。 因此,您必須識別兩個額外的數據行。
包含您要旋轉之資料列值的資料列值會呼叫 ,而儲存目前存在於所旋轉資料行下之值的數據行則稱為 。 在 Transact-SQL 定義中,這些資料行分別對應到 pivot_column 和 value_column。 以下是查詢。
以下為部分結果集。
不是 的確切反向 。 會執行彙總,並將多個可能資料列合併成輸出中的單一資料列。 不會重現原始數據表值表達式結果,因為數據列已經合併。 此外, 在輸出中消失的輸入 值。 當值消失時,它會顯示作業之前輸入中可能有原始值。
範例資料庫中的 檢視表會使用 來傳回每位銷售人員在每個會計年度的總銷售額。 若要在 SQL Server Management Studio 中編寫該檢視的指令碼,請在物件總管中,於 資料庫的 [檢視] 資料夾底下找出該檢視。 在檢視表名稱上按一下滑鼠右鍵,然後選取 [編寫檢視表的指令碼為] 。
- FROM 子句 (Transact-SQL)
- CASE (Transact-SQL)
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/haskellbc/41522.html