jeck貓
2019-12-03 10:47:46
實(shí)際上是否可以旋轉(zhuǎn)T-SQL(2005),以便(出于爭(zhēng)論的目的)第一列的行的值成為輸出表的列的標(biāo)題?我意識(shí)到這并不是PIVOT真正的目的,而是我所需要的-能夠請(qǐng)求一個(gè)表的功能,這些列是事先不知道的,因?yàn)樗鼈円呀?jīng)作為值輸入到表中。即使是駭客也很好,TBH。
2 回答

蝴蝶刀刀
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
更好的數(shù)據(jù)透視查詢?nèi)缦拢?/p>
-- Static PIVOT
WITH PivotData AS
(
SELECT custid, YEAR(orderdate) AS orderyear, qty
FROM dbo.Orders
)
SELECT custid, [2002], [2003], [2004]
FROM PivotData
PIVOT(SUM(qty) FOR orderyear IN([2002],[2003],[2004])) AS P;
我認(rèn)為通用表表達(dá)式(CTE)的樣式勝于派生表,因?yàn)槲艺J(rèn)為它更易于理解。Itzik也這樣做,因?yàn)樗凇恫樵僊icrosoft SQL Server 2012》一書(shū)中建議使用這種樣式。
添加回答
舉報(bào)
0/150
提交
取消