2010-09-29 60 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)