`
luozhonghua2014
  • 浏览: 62350 次
文章分类
社区版块
存档分类
最新评论

oracle sql 替换 in ,dual性能优化

 
阅读更多
create table bakInfo(
 id int,
 pname varchar2(10),
 remark varchar2(10),
 impdate varchar2(10),
 upstate varchar(10));
 
 create table Info(
    id int,
    pname varchar2(10),
    remark varchar2(10),
    impdate varchar2(10),
    upstate varchar(10));
    
insert into Info values(1,'1111','1111','1111','1111'); 
insert into Info values(2,'2222','2222','2222','2222'); 
insert into Info values(3,'3333','3333','3333','3333'); 
insert into Info values(4,'1111','1111','1111','1111'); 
insert into Info values(5,'2222','2222','2222','2222'); 
insert into Info values(6,'3333','3333','3333','3333'); 
    
insert into bakInfo values(1,'1111','1111','1111','1111'); 
insert into bakInfo values(2,'2222','2222','2222','2222'); 
insert into bakInfo values(3,'3333','3333','3333','3333'); 
insert into bakInfo values(4,'4444','4444','4444','4444'); 
insert into bakInfo values(5,'1111','1111','1111','1111'); 
insert into bakInfo values(6,'2222','2222','2222','2222'); 
insert into bakInfo values(7,'3333','3333','3333','3333'); 
insert into bakInfo values(8,'4444','4444','4444','4444'); 

select * from bakInfo;
select * from info;  
  
select * from bakInfo where id in (select id from info);
select b.* from bakinfo b  INNER join info i on b.id = i.id;

select b.* 
  from bakInfo b
  left join Info i
  on b.id=i.id
 where b.id in (3,4,1,2);

select b.* 
  from bakInfo b
  left join Info i
  on b.id=i.id
 where    exists(   select 1   from  (select 3 n from dual
                                       union all select 4 n from dual
                                        union all select 1 n from dual
                                         union all select 2 n from dual) t   
                    where    b.id=t.n
                )

分享到:
评论

相关推荐

    Oracle SQL性能优化技巧大总结

    ### Oracle SQL性能优化技巧大总结 #### 一、选择最有效率的表名顺序 **背景**:在基于规则的优化器(RBO)中,Oracle解析器处理FROM子句中的表名是从右向左的。为了提高查询效率,需要合理安排表的顺序。 **技巧...

    Oracle_Sql_中常用字符串处理函数

    Oracle Sql 中提供了多种字符串处理函数,用于对字符串进行各种操作,如大小写转换、截取、连接、查找、替换等。下面是 Oracle Sql 中常用的字符串处理函数: 1. 大小写转换函数 Oracle Sql 提供了两个大小写转换...

    Oracle高级sql学习与练习

    在Oracle数据库系统中,高级SQL技能是进行高效数据管理、查询优化和复杂数据处理的基础。 1. 集合操作包括UNION、UNION ALL、INTERSECT和MINUS等,它们用于合并两个或多个SELECT语句的结果集。UNION和UNION ALL用于...

    oracle字符串替换

    ### Oracle字符串替换:使用REGEXP_REPLACE函数 在Oracle数据库中,对字符串进行处理是一项非常常见的需求,尤其是在数据清洗、格式转换等场景下。本文将详细介绍如何利用`REGEXP_REPLACE`函数来实现字符串替换功能...

    oracle (sql语法) .doc

    包括索引、视图、存储过程、触发器等,这些对象帮助优化查询性能和数据库逻辑。 十一、用户权限及角色管理 Oracle提供权限系统,允许控制用户对数据库对象的访问。`GRANT`和`REVOKE`用于赋予或撤销权限,角色是权限...

    ORACLE 常用SQL语句

    ORACLE 常用 SQL 语句 ORACLE 是一种关系数据库管理系统,它提供了多种 SQL 语句来操作和管理数据库。下面将 Introduced 13 种常用的 ORACLE SQL 语句,涵盖字符串处理、数据搜索和修改等方面。 1. ASCII 函数 ...

    Oracle sql内置函数大全

    Oracle SQL 内置函数大全 Oracle SQL 中提供了多种内置函数,用于实现各种字符串、数字和日期处理操作。...这些内置函数可以帮助我们更好地处理字符串、数字和日期等数据,提高 Oracle SQL 的开发效率和性能。

    oracle sql内置函数大全

    根据提供的文件信息,本文将详细介绍Oracle SQL中的内置函数,这些函数是进行数据处理、文本操作以及其他常见数据库任务的重要工具。以下是对部分Oracle SQL内置函数的详细介绍: ### 1. ASCII 函数 ASCII函数用于...

    Oracle SQL PLSQL练习题

    Oracle SQL 和 PL/SQL 是两种在 Oracle 数据库中进行数据操作和管理的编程语言。这里是一些关于这些语言的关键知识点: 1. **ANSI 兼容的 JOIN 语句**: - ANSI SQL 标准引入了 JOIN 关键字来替代传统的 WHERE ...

    MYSQL,SQLSERVER,ORACLE常用的函数

    SELECT INSTR('oracle traning', 'ra', 1, 2) AS instring FROM dual; ``` 输出结果为9,因为第二个“ra”的位置是在第9个字符处。 #### 6. LENGTH 返回字符串的长度。例如: ```sql SELECT NAME, LENGTH(NAME), ...

    SQL_Server,Oracle,DB2数据库SQL语句比较

    标题与描述均聚焦于SQL Server, Oracle, 和DB2数据库中的SQL语句比较,这是一个对IT专业人士特别是数据库管理员(DBA)、开发人员以及对数据库技术感兴趣的人来说极为实用的主题。以下是对给定文件中提及的关键知识点...

    Oracle SQL 内置函数大全

    根据给定的文件信息,以下是对Oracle SQL内置函数的详细解析: ### Oracle SQL 内置函数大全 #### 单记录函数详解 ##### ASCII函数 ASCII函数用于返回与指定字符相对应的十进制数值。例如,`ASCII('A')`会返回65...

    SQLServer和Oracle常用函数对比

    - **Oracle**: Oracle使用`REPLACE`函数进行替换:`SELECT REPLACE('abcdef', 'bcd', 'xyz') AS Value FROM DUAL;` 结果为 `axyzdef` #### 其他函数 ##### 1. 最大值 - **SQLServer**: `SELECT MAX(Value) AS ...

    SQL Server和Oracle常用函数区别

    Oracle中的对应函数分别是`CEIL()`和`FLOOR()`,使用方式与SQL Server类似,但需加上`FROM DUAL`。 3. 截取整数: SQL Server中,将浮点数截断成整数可以使用`CAST()`函数,如`SELECT CAST(-1.002 AS INT) value`。...

    Oracle SQL Fundamentals Part 1

    ### Oracle SQL Fundamentals Part 1 知识点详解 #### 1. DISTINCT 关键字 在 SQL 查询中,`DISTINCT` 关键字用于去除查询结果中的重复行,确保每行数据都是唯一的。例如,在查询员工表时,如果只想获取不同的部门...

    从Sql Server迁移到 Oracle 过程中代码需要调整的地方

    - SQL Server中的跨表更新可以使用JOIN,而在Oracle中,通常需要将子查询放在`WHERE`子句中,如`WHERE product_id IN (SELECT ...)`。 6. **操作符**: - 字符串连接符:SQL Server使用`+`,Oracle使用`||`。 7...

    Oracle和SQL Server的一些区别(函数和存储过程)

    - **SQL Server** 和 **Oracle**: 都使用 `SELECT ASCII('a') AS Value FROM DUAL` 22. **字符转换(CHAR/CHR)** - **SQL Server** 和 **Oracle**: 都使用 `SELECT CHAR(97) AS Value FROM DUAL` 23. **字符串...

Global site tag (gtag.js) - Google Analytics