1
我想要PIVOT一個表並添加一個WHERE子句,但我無法弄清楚語法。T-SQL pivot在SQL Server中的子句
數據
dbo.SOME_VIEW YEAR AMOUNT ==================== 2014 1 2013 2 2012 5.6 2011 574 2010 123
查詢
SELECT
*
FROM SOME_VIEW
PIVOT (SUM(AMOUNT) FOR [YEAR] IN ([2012], [2013], [2014])) AS PIVOTED
現在我想從視圖中僅與一年的行,我將支點,所以我想添加
得到WHERE YEAR IN (2012, 2013, 2014)
我有什麼後FROM SOME_VIEW
SELECT
*
FROM SOME_VIEW WHERE YEAR IN (2012, 2013, 2014)
PIVOT (SUM(AMOUNT) FOR [YEAR] IN ([2012], [2013], [2014])) AS PIVOTED
試圖
將WHERE
我得到:Incorrect syntax near the keyword 'PIVOT'
。當我在末尾添加WHERE
時,我得到Invalid column name 'YEAR'
。
問題
我在哪裏可以添加WHERE子句當我使用PIVOT?
爲什麼
爲了表現。在我看來,自1990年以來,我只有最後三年。我希望當我添加一個我提高性能的地方。
我不明白的問題。 'IN'子句中沒有提及的'pivot_column'值的任何行都會被'PIVOT'操作自動排除。 –
** [Demo](https://data.stackexchange.com/stackoverflow/query/434756)**根據當前需求,根本不需要'WHERE'。 – lad2025
我問,因爲我認爲明確的WHERE子句可以提高性能。那麼PIVOT隱式的WHERE? –