SQL列置换

SQL列置换,sql,postgresql,Sql,Postgresql,假设我有一个表,其中一列由4行组成 名称 名称1 姓名2 名字3 名字4 如何获得此列行的所有排列。即 名称1名称2名称3名称4 名称1名称2名称4名称3 等等。将其自身连接起来 select t1.name, t2.name, t3.name, t4.name from table t1, table t2, table t3, table t4 它是什么sql引擎?SQL Server、Oracle等。当您得到问题的解决方案时,请将正确答案标记为已接受,并将问题完整地保留给其他人查看。问题

假设我有一个表,其中一列由4行组成

名称

名称1

姓名2

名字3

名字4

如何获得此列行的所有排列。即

名称1名称2名称3名称4

名称1名称2名称4名称3

等等。

将其自身连接起来

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

它是什么sql引擎?SQL Server、Oracle等。当您得到问题的解决方案时,请将正确答案标记为已接受,并将问题完整地保留给其他人查看。问题是,您还可以看到诸如name1、name1、name1、name1之类的行。一排中的每件事都必须是不同的,这不是从你的问题中得到的@比尔·卡温的解决方案应该会有所帮助。
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)