问题描述
样本数据:
create table group_ (
group_id number);
create table set_(
set_id number);
insert into group_ values(1);
insert into group_ values(2);
insert into group_ values(3);
insert into set_ values(1);
insert into set_ values(2);
sql:
SELECT group_id,sys_connect_by_path(set_id,','),LEVEL
FROM set_
CROSS JOIN group_
CONNECT BY prior set_id < set_id
ORDER BY group_id,combo nulls first,lvl;
我的目标是获得 2 个表的所有可能组合,并且它正在工作,但我有重复的值,所以我必须使用不同/唯一的 caluse。 问题是 - 为什么它们会出现?
解决方法
您正在执行 UNION ALL
。实际上,您是从 group_
中选择所有内容,然后在加入 set_
表后再次选择它。
更改为 UNION
,重复项将被删除。