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