oracle 中 in函数

select * from emp in empno in(1,2,3......);

in 函数的使用限制:in()中的数据有最多1000条的限制

可用exists 替换,如果主表的话用exist会快一些,如果相反的话,还是in快一些

     

有两个简单例子,以说明 "exists"和"in"的效率问题
1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;
  T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。
2) select * from T1 where T1.a in (select T2.a from T2) ;
  T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。
因为exists就是为了in都不能跟大数据而生的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle ,存储函数的格式如下: ```sql CREATE [OR REPLACE] FUNCTION function_name (parameter1 [IN | OUT | IN OUT] data_type1, parameter2 [IN | OUT | IN OUT] data_type2, ... parameterN [IN | OUT | IN OUT] data_typeN) RETURN return_data_type [DETERMINISTIC] [AUTHID {DEFINER | CURRENT_USER}] {IS | AS} [PRAGMA AUTONOMOUS_TRANSACTION;] BEGIN -- 函数体逻辑 RETURN return_value; [EXCEPTION -- 异常处理逻辑] END [function_name]; ``` 其,关键字说明如下: - `CREATE FUNCTION`: 创建一个函数。 - `OR REPLACE` (可选): 如果函数已存在,则替换原有函数。 - `function_name`: 函数的名称。 - `parameter1`, `parameter2`, ..., `parameterN`: 函数的参数列表。 - `[IN | OUT | IN OUT]`: 参数的传入/传出方式。 - `data_type1`, `data_type2`, ..., `data_typeN`: 参数的数据类型。 - `RETURN return_data_type`: 函数返回值的数据类型。 - `[DETERMINISTIC]` (可选): 指定函数是否是确定性的,即对于相同的输入参数,是否总是返回相同的结果。 - `[AUTHID {DEFINER | CURRENT_USER}]` (可选): 指定函数的执行权限。 - `{IS | AS}`: 函数体开始的标识。 - `[PRAGMA AUTONOMOUS_TRANSACTION;]` (可选): 指定函数是否是自主事务。 - `BEGIN`: 函数体的开始。 - `RETURN return_value;`: 返回函数结果。 - `[EXCEPTION ...]` (可选): 异常处理逻辑。 - `END [function_name];`: 函数体的结束。 注意,以上是一般的存储函数格式,在实际使用,可以根据具体需求进行相应的调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值