本文介紹如何將表中的數據轉換為類別透視的格式,其中空值表示為NULL或空字符串。這可以通過動態SQL PIVOT查詢實現。
以下步驟概述了創建動態PIVOT查詢的過程:
MAX()
聚合函數檢索每個類別的最大值。 <code class="language-sql">DECLARE @cols AS NVARCHAR(MAX), @query AS NVARCHAR(MAX); SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.category) FROM temp c FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'') set @query = 'SELECT date, ' + @cols + ' from ( select date , amount , category from temp ) x pivot ( max(amount) for category in (' + @cols + ') ) p ' execute(@query)</code>
生成的表將包含表示唯一類別的列,日期作為行。空值可以根據所需的輸出通過NULL或空字符串進行處理。
示例結果:
<code>日期 ABC DEF GHI 2012-01-01 00:00:00.000 1000.00 NULL NULL 2012-02-01 00:00:00.000 NULL 500.00 800.00 2012-02-10 00:00:00.000 NULL 700.00 NULL 2012-03-01 00:00:00.000 1100.00 NULL NULL</code>
以上是如何使用動態SQL Pivot進行數據轉換,並使用空字符串處理?的詳細內容。更多資訊請關注PHP中文網其他相關文章!