RosettaCodeData/Task/Set/SQL/set.sql

84 lines
1.4 KiB
SQL

-- set of numbers is a table
-- create one set with 3 elements
create table myset1 (element number);
insert into myset1 values (1);
insert into myset1 values (2);
insert into myset1 values (3);
commit;
-- check if 1 is an element
select 'TRUE' BOOL from dual
where 1 in
(select element from myset1);
-- create second set with 3 elements
create table myset2 (element number);
insert into myset2 values (1);
insert into myset2 values (5);
insert into myset2 values (6);
commit;
-- union sets
select element from myset1
union
select element from myset2;
-- intersection
select element from myset1
intersect
select element from myset2;
-- difference
select element from myset1
minus
select element from myset2;
-- subset
-- change myset2 to only have 1 as element
delete from myset2 where not element = 1;
commit;
-- check if myset2 subset of myset1
select 'TRUE' BOOL from dual
where 0 = (select count(*) from
(select element from myset2
minus
select element from myset1));
-- equality
-- change myset1 to only have 1 as element
delete from myset1 where not element = 1;
commit;
-- check if myset2 subset of myset1 and
-- check if myset1 subset of myset2 and
select 'TRUE' BOOL from dual
where
0 = (select count(*) from
(select element from myset2
minus
select element from myset1)) and
0 =
(select count(*) from
(select element from myset1
minus
select element from myset2));