是否可以爲PIVOT操作定義「後退」或「其他」情況?讓我與樣品從MSDN玩:PIVOT有額外的'else/default/fallback'列嗎?
-- Pivot table with one row and five columns
SELECT
'AverageCost' AS Cost_Sorted_By_Production_Days,
[0], [1], [2], [3], [4],
[??magicalELSEkeyword??] as 'too many days'
FROM
(
SELECT DaysToManufacture, StandardCost
FROM Production.Product
) AS SourceTable
PIVOT
(
AVG(StandardCost)
FOR DaysToManufacture IN
(
[0], [1], [2], [3], [4],
[??magicalELSEkeyword??]
)
) AS PivotTable;
樞軸行爲是相當明顯的 - 它選擇/箱/過值的指定列表的出現次數組。我想看到的是一個「後備」案例。在上面的查詢,我想取:
- 平均成本爲「瞬間」 0天的過程
- 平均成本爲1天的過程
- ...
- 的平均成本爲期4天的過程
- 爲所有其他
平均成本請注意,案件清單「通緝令」是恆定的,衆所周知。我不想產生一個未知數列的關鍵點。我只想將所有不匹配的值分組爲簡單的結果命名爲「其他」
我還沒有看到任何這種可能性在MSDN的T-SQL語法參考中,我很難相信這是不可用的。 。它似乎是這樣有用的功能和微不足道的實施,它只是傷害忽略它..
是的,我知道它可能會引入討論是否以及如何處理出現在'其他',但這只是兩種特殊情況......它們可以被忽略,就像在任何聚合函數中那樣 - 實現起來微不足道,並且100%很好並與其他SQL保持一致 - 或者可以由兩個不同的後備關鍵字處理,如ELSE-NOT-NULL與ELSE-OR-NULL ..
此功能是否真的缺失?