读书人

高分组合有关问题

发布时间: 2012-02-02 23:57:14 作者: rapoo

高分求一个组合问题
如果我要判断一个数是否在一个集合中,我可以这样做
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)

读书人网 >oracle

热点推荐