oracle中and和or


復習ocp考題的時候有道關於and和or的題目,拿出來看一下and和or的區別:

Choose two

Examine the description of the BOOKS_TRANSACTIONS table

Name Null? Type

----------------------------------------------------------------------------------------------

THANSACTION_ID NOT NULL VARCHAR2(6)

TRANSACTION_TYPE VARCHAR2(3)

BORROWED_DATE DATE

BOOK_ID VARCHAR2(6)

MEMBER_ID VARCHAR2(6)

Examine this partial SQL statement:

SELECT * FROM books_transctions;

Which two WHERE conditions give the same result?

A) WHERE borrowed_date = SYSDATE AND (transaction_type= 'RM' OR member_id IN ('A101','A102'));

B) WHERE borrowed_date = SYSDATE AND transaction_type= 'RM' OR member_id IN ('A101','A102');

C) WHERE borrowed_date = SYSDATE AND (transaction_type= 'RM' AND member_id='A101' OR member_id = 'A102'));

D) WHERE (borrowed_date = SYSDATE AND transaction_type= 'RM' ) OR member_id IN ('A101','A102');

E) WHERE borrowed_date = SYSDATE AND (transaction_type= 'RM' AND ( member_id= 'A101' OR member_id = 'A102' ) );

Correct Answer: BD

那么,and和or有什么區別呢 ? 

1.and表示交

2.or表示並

3.and的優先級比or高

然后我們來看下上面這個題目:(誰能一眼看出答案?)

A:表示 orrowed_date = SYSDATE and transaction_type= 'RM'    交集於  orrowed_date = SYSDATE and member_id IN ('A101','A102')

B:表示WHERE borrowed_date = SYSDATE AND transaction_type= 'RM'  交集於  member_id IN ('A101','A102');

C:表示WHERE borrowed_date = SYSDATE AND transaction_type= 'RM' AND member_id='A101'  交集於  WHERE borrowed_date = SYSDATE and member_id = 'A102'

D:這個就很明顯了,前面有個括號

表示(borrowed_date = SYSDATE AND transaction_type= 'RM' )交集於  member_id IN ('A101','A102');

E:表示在member_id= 'A101' 交集於 member_id = 'A102'的結果集里面找到 borrowed_date = SYSDATE AND transaction_type= 'RM' 

也就是 WHERE borrowed_date = SYSDATE AND transaction_type= 'RM'  and member_id= 'A101'  交集於 WHERE borrowed_date = SYSDATE AND transaction_type= 'RM'  and member_id= 'A102'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM