我的表有以下幾列:SQL轉換列排
A | B | C | D | E | F
我想顯示此如下:
MyColumn | MyColumn2
A | B
C | D
E | F
正如你可以看到我想要顯示的列與對自定義列名稱。這些對列A和B,C柱和d和C柱和D
我的表有以下幾列:SQL轉換列排
A | B | C | D | E | F
我想顯示此如下:
MyColumn | MyColumn2
A | B
C | D
E | F
正如你可以看到我想要顯示的列與對自定義列名稱。這些對列A和B,C柱和d和C柱和D
select A as [Col 1], B as [Col 2] from table
union all
select C,D from table
union all
select E,F from table
還有其他方法可以執行此操作嗎?我還讀了一些關於(不)支點的內容?工會之後又有什麼意義? – Martijn 2009-02-18 11:17:05
這不會擴展到十億列,但...
Select A as MyColumn, B as MyColumn2 from Table
UNION
Select C as MyColumn, D as MyColumn2 from Table
UNION
Select E as MyColumn, F as MyColumn2 from Table
該查詢將刪除雖然重複。所以說有一個記錄在表
你好|世界|你好|世界|你好|世界
我的選擇只會返回
你好|世界
三寶的將返回所有三個...
如果我正確理解你,你可以用一個工會做到這一點:如果你的數據類型是不一樣
SELECT A as MyColumn, B as MyColumn2
UNION
SELECT C as MyColumn, D as MyColumn2
UNION
SELECT E as MyColumn, F as MyColumn2
匹配列,那麼你需要先轉換數據類型,所以像這樣:
SELECT CONVERT(VARCHAR(10), A) as MyColumn, CONVERT(VARCHAR(10), B) as MyColumn2
UNION
SELECT CONVERT(VARCHAR(10), C) as MyColumn, CONVERT(VARCHAR(10), D) as MyColumn2
UNION
SELECT CONVERT(VARCHAR(10), E) as MyColumn, CONVERT(VARCHAR(10), F) as MyColumn2
在Sql Server 2005中Unpivot運算符可以solv你的問題。 Unpivot converts columns to rows in sql server 2005。
希望它有幫助
那麼這張表中只有一行呢? – 2009-02-18 11:18:00
不,該行有多行,但我知道我總是通過使用where子句獲得一行 – Martijn 2009-02-18 11:20:16