2010-11-16 127 views
0

我想編寫一個在SQL Server 2000中使用透視圖的SQL語句。PIVOT關鍵字在SQL Server 2000中不可用,因此我找到了一些使用case語句的示例但是這要求你事先知道列名,我不會。我如何做一個數據透視表,從它可用的數據中動態生成列名稱?如何在SQL Server 2000中執行動態數據透視

回答

0

我們使用來自應用程序的CASE語句創建SQL命令,並在數據庫(任何數據庫,不是特定的SQL服務器)上觸發它們。首先,我們使用一個查詢來確定透視列的數量及其名稱,從我們生成下一個查詢的結果中確定。 所以確定列第一查詢頗像:

SELECT DISTINCT myField FROM myTable 

然後我們使用這個結果所有的值來構建,其中每個值生成一個CASE語句的SQL命令。

我們想要一個不依賴數據庫的解決方案,所以我們在數據庫之外進行這種處理,但是我確信你可以在SQL Server本身的存儲過程中做同樣的事情。

+1

我試過了你的想法,它的工作原理,但我認爲你應該添加示例代碼到你的答案構建SQL命令與CASE語句,以幫助其他人遇到此答案。 – Joe 2010-11-17 04:38:40

0

我還沒有嘗試在SQL Server 2000上覆制PIVOT,但我所做的是在事先不知道列名時使用PIVOT。我曾使用ROW_NUMBER()來確定列名稱。你可以試試。