2010-09-29 16 views
0

比方說,我有一個表,其中一列由4行組成。SQL列置換

名稱

名1

名2

NAME3

NAME4

我怎麼能得到此列行的所有排列。即

名1名2 NAME3 NAME4

名1名2 NAME4 NAME3

ETC.

+1

什麼SQL引擎是什麼呢? SQL Server,Oracle等... – kevchadders 2010-09-29 15:21:54

+0

postgreSQL ..... – user461316 2010-09-29 15:27:40

+1

當你已經得到了你的問題的解決方案,標記正確答案爲接受,並請留下完整的問題讓別人看到。 – JamesMLV 2010-09-29 15:59:30

回答

1

加入它自己?

select t1.name, t2.name, t3.name, t4.name 
from table t1, table t2, table t3, table t4 
+0

與此相關的事情是,您還可以獲得諸如name1,name1,name1,name1之類的行。一行中的所有東西都必須是不同的 – user461316 2010-09-29 15:51:50

+0

好的,我沒有從你的問題中得到。 @Bill Karwin的解決方案應該有所幫助。 – Beth 2010-09-29 16:48:03

1
select t1.name, t2.name, t3.name, t4.name 
from mytable t1 
join mytable t2 on t2.name not in (t1.name) 
join mytable t3 on t3.name not in (t1.name, t2.name) 
join mytable t4 on t4.name not in (t1.name, t2.name, t3.name)