1 | exists语句 | 查找两个表关联后,关联上或没关联上的数据 | 比如A,b表的ID是关联的,想找A表的ID没有在B表的ID中出现过得数据 | SELECT * FROM A WHERE NOT EXISTS (SELECT * FROM B WHERE A.ID=B.ID) |
2 | Or语句 | 表示2个并列的关系,或者的意思 | 由于使用or语句会出现搜索效率的下降,建议把or语句换成union语句 | SELECT * FROM A WHERE ID =3 UNION SELECT * FROM A WHERE NAME LIKE '10%' |
3 | IF语句 | 表示条件的判断,写入分支选择 | 在存储过程或者复杂的语句中使用 | IF 条件判断 THEN 执行的分支语句; ELSE 执行的分支语句; END IF; |
4 | execute immediate | 执行语句 | 由于在存储过程中,有些表是执行前才创建的,所以这个存储过程中有些语句在写的时候是会报错的,说没有目标表。这个时候需要把这个语句用单引号括起来,在前面加上execute immediate | execute immediate 'INSERT INTO RD_CROSSWALK_INFO_RP b(pid) SELECT pid FROM RD_CROSSWALK_INFO@DBUNI ' |
5 | (+) | 进行两个表的关联查询,显示全部内容 | 比如A、B的ID是关联的,想把B的name字段加到A表中,但是B表的ID是比A表少的,如果不适用这个加号,会导致B表没有的ID数据丢失,使用加号,表示B表没有的ID会用空来表示,不放加号的表会显示所有行 | SELECT A.ID,B.NAME FROM A ,B WHERE A.ID=B.ID(+) |
ORACLE ---sql语句学习
最新推荐文章于 2022-09-25 15:05:49 发布