作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我必须使用 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
........
: : :
: : :
等等。
谁能为这个过程推荐最有效的算法?谢谢。
最佳答案
笛卡尔连接将产生您正在寻找的所有组合。由于所有三列都在同一个表中,因此您需要将表临时拆分为三 block :
SELECT *
FROM (SELECT a FROM mytable),
(SELECT b FROM mytable),
(SELECT c FROM mytable);
关于database - 如何在pl/sql中获取一个表的三列的组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17248584/
我是一名优秀的程序员,十分优秀!