我必须使用PL/SQL找出数据库中表的三列的组合。为了方便起见,请考虑下面的抽象表(A,B,C代表列名称和v1,v2,v3...代表列值):
-+-----+-----+-----+-
-| A | B | C |-
-+-----+-----+-----+-
-| v1 | v2 | v3 |-
-+-----+-----+-----+-
-| v4 | v5 | v6 |-
-+-----+-----+-----+-
-| : | : | : |-
: : : 我的模块应该生成这三列A、B、C的每个组合,如下所示:
v1 v2 v3
v1 v2 v6
v1 v5 v3
v1 v5 v6
........
v4 v2 v3
v4 v2 v6
v4 v5 v3
v4 v5 v6
........
: : :
: : :以此类推。
有谁能为这个过程提出最有效的算法吗?谢谢。
发布于 2013-06-22 17:47:47
笛卡尔连接将产生您正在寻找的所有组合。由于所有三列都在同一个表中,因此您需要将该表临时拆分为三部分:
SELECT *
FROM (SELECT a FROM mytable),
(SELECT b FROM mytable),
(SELECT c FROM mytable);https://stackoverflow.com/questions/17248584
复制相似问题