Oracle SQL 如何对静态数据集执行集合操作?
How to perform set operations by Oracle SQL over static DATA sets?
需要在静态数据集上执行集合操作(MINUS
,INTERSECT
,..)
例如:
SELECT ('a','b') MINUS ('a') from dual;
预计 return 'b'
SELECT ('a','b') INTERSECT ('c') from dual;
预计 return 'a','b','c'
,但我遇到了
ORA-00907: missing right parenthesis
您可以使用 predefined types 之一,如下所示:
select * from table(sys.odcivarchar2list('a', 'b'))
minus
select * from table(sys.odcivarchar2list('c'))
另一种选择可能不是更好的选择。参见 DEMO HERE
(SELECT 'a' from dual
union
select 'b' from dual)
MINUS
select 'a' from dual;
需要在静态数据集上执行集合操作(MINUS
,INTERSECT
,..)
例如:
SELECT ('a','b') MINUS ('a') from dual;
预计 return 'b'
SELECT ('a','b') INTERSECT ('c') from dual;
预计 return 'a','b','c'
,但我遇到了
ORA-00907: missing right parenthesis
您可以使用 predefined types 之一,如下所示:
select * from table(sys.odcivarchar2list('a', 'b'))
minus
select * from table(sys.odcivarchar2list('c'))
另一种选择可能不是更好的选择。参见 DEMO HERE
(SELECT 'a' from dual
union
select 'b' from dual)
MINUS
select 'a' from dual;