oracle中minus的使用

2021-07-10 19:41:46 字數 714 閱讀 8401

工作中遇到乙個問題,oracle中兩張表結構完全相同的表,a,b。要從a中向b刷資料,有時候,並不一定全部刷過去,b中的資料可能要比a中的資料少,然後,根據sj這個字段,再手工按照差的天數sj進行依次匯入。每月這麼多天,如果能查出來,b比a少的這些資料的sj欄位,工作量就會減少。

其實,就是兩個表關聯了,網上查了查,minus正好符合需求。

用如下類似語句

select * from a where yf=2

minus

select * from b where yf=2

結果:可以查詢出表a中存在而表b中不存在的資料資訊。可是排序的結果是預設排序,不符合按sj降序排序的要求。

僅僅按如下語句:

select * from a where yf=2

minus

select * from b where yf=2

order

by sj desc;

會報語法錯誤「not invalid column name」

select * from a where yf=2

minus

select * from b where yf=2

orderby6

desc;

其中6為sj欄位在結果表中的列的數目。

level和minus的使用

level是從0開始的,它必須是和connect by一起使用的 個人理解相當於乙個偽列 minus 是比較兩個表中 a minus b 是在a中有b裡面沒有的 insert into t a id,name,age,values 1 1 1,1 insert into t a id,name,ag...

SQL中MINUS的用法

minus指令是運用在兩個 sql 語句上。它先找出第乙個 sql 語句所產生的結果,然後看這些結果有沒有在第二個 sql 語句的結果中。如果有的話,那這一筆資料就被去除,而不會在最後的結果中出現。如果第二個 sql 語句所產生的結果並沒有存在於第乙個 sql 語句所產生的結果內,那這筆資料就被拋棄...

ORACLE中「 」的使用

使用 查詢出固定格式的資料 select 編號是 empno 的雇員,姓名是 ename 工作是,job from emp 查詢的結果 編號是 9000的雇員,姓名是 sb,工作是,銷售 編號是 7369的雇員,姓名是 smith,工作是,clerk 編號是 7499的雇員,姓名是 allen,工作...