oracle两个in之间用on还是or

oracle两个in之间用on还是or,第1张

在Oracle数据库中,两个IN之间使用OR,而不是ON。OR表示“或”,意味着查询将返回两个IN子句中的任何一个。例如,如果您有一个表,其中包含一列名为“城市”,您可以使用以下查询来查找城市为“伦敦”或“纽约”的行:SELECT * FROM table WHERE city IN ('London', 'New York') OR city = 'Paris'这将返回城市为“伦敦”、“纽约”或“巴黎”的行。

oracle过程中定义了in、out、inout三种参数模式,每个参数可以选择其一。

1、in是参数的默认模式,这种模式就是在程序运行的时候已经具有值,在程序体中值不会改变;

2、out模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用的过程;

3、inout模式表示高参数可以向该过程中传递值,也可将某个值传出去。

表A(小表),表B(大表)

select * from B where cc in (select cc from A) 这个语句中是先从A表中把cc找出来,然后根据cc再在B中去找相关的cc 由于A表的cc远小于B表的cc 所以可以节省时间

select * from B exists (select cc from A where cc=B.cc)这句话是先从B表里把cc找出来 然后再在A表里找相关的cc 由于B表的cc远多于A表的cc 所以这样做很浪费时间

总结: 用in 时 大表在前小表在后

用exists时 小表在前大表在后


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6776069.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存