日期:2014-05-17  浏览次数:20707 次

高分求一个组合问题
如果我要判断一个数是否在一个集合中,我可以这样做
select   1   from   dual   where   (1)   in   (1,2,3)

但如果我要判断一个集合是否被另外一个集合包含,如
select   1   from   dual   where   (1,2)   in   (1,2,3)
这样写是不符合语法,只能将所有记录(1,2)插入一张表t1,
(1,2,3)插入另外一张表t2,然后查询t1是否有纪录不在t2中,
这样做固然可以解决问题,但是能不能不使用表,写一个函数
完成同样的功能?

谢谢,欢迎参加讨论

------解决方案--------------------
请看SQL中的Collection一节

可以先建A, B两个Collection后,再用exists判断两个集合的包含关系
------解决方案--------------------
可以這樣判斷:
select 1 from dual where 1 in (1,2,3) and 2 in (1,2,3)
------解决方案--------------------
感觉这样的需求不是sql来解决的

用其他高级语言不是更好
------解决方案--------------------
把1,2,3加到表t2(col integer)中,
select 1 from dual where (1,2) in (
select a.col,b.col from t2 a,t2 b)