iT邦幫忙

1

17. SQL Server學習日記 - 邏輯運算子

  • 分享至 

  • xImage
  •  

接下來會使用這個food資料表
https://ithelp.ithome.com.tw/upload/images/20231002/20163415gRSxO2Mkv9.png

邏輯運算子

使用邏輯運算子可以組合多個查詢條件來篩選資料

一、NOT運算子:反轉查詢條件

Ex: 查詢food_catalg不為熟食的紀錄

SELECT food_catalg,profit
	FROM food
WHERE NOT food_catalg = '熱食' 

執行結果
https://ithelp.ithome.com.tw/upload/images/20231004/20163415CAlGZVBflD.png

二、AND 運算子:左右兩側的查詢條件均成立,則整段查詢條件才算成立

Ex : AND,在food_catalg是熱食 且 profit大於5才成立

SELECT food_catalg ,profit
	FROM food
WHERE food_catalg = '熱食'
	AND profit > 5;

執行結果
https://ithelp.ithome.com.tw/upload/images/20231004/20163415HiBRkKX4K5.png

三、OR 運算子: 左右兩側的查詢條件,有一側或兩側成立時,則整段查詢條件才算成立

Ex:OR,在food_catalg是熱食 或 profit大於5就成立了

SELECT food_catalg,profit
	FROM food
WHERE food_catalg = '熱食' 
	OR profit > 5;

執行結果
https://ithelp.ithome.com.tw/upload/images/20231004/20163415qULNUWHyEd.png

四、運算子優先順序 (Transact-SQL)

1>>>>8
1為最優先

層級 操作子
1 ~ (位元 NOT)
2 * (乘)、/ (除)、% (模數)
3 + (正)、- (負)、+ (加)、(+ 串連)、- (減) & (位元 AND)、^ (位元互斥 OR)、 | (位元 OR)
4 =, >, <, >=, <=, <>, !=, !>, !< (比較運算子)
5 NOT
6 AND
7 ALL、ANY、BETWEEN、IN、LIKE、OR、SOME
8 = (指派)

五、括號優先處理

舉例 : AND的優先值>OR,如果今天希望OR邏輯運算子優先處理,則需加上括號

目標條件為 :「食物類別為熱食」且「利潤為15或售出單價為25」

Ex:順著這句話敘述是(以下程式碼)

SELECT food_catalg,profit,sell_price
	FROM food
WHERE  food_catalg = '熱食' 
		AND profit =15
		OR sell_price =25

執行結果(跑出熱食以外的類別)
https://ithelp.ithome.com.tw/upload/images/20231004/20163415phKr4XHZt8.png
不是我們要的結果,此段程式碼的意思是 「食物類別為熱食 且 利潤為15」或「售出單價為25」

Ex:當我們加入括號後

SELECT food_catalg,profit,sell_price
	FROM food
WHERE  food_catalg = '熱食' 
		AND ( profit =15
		OR sell_price =25 )

執行結果
https://ithelp.ithome.com.tw/upload/images/20231004/201634157VFJl1STYw.png
表達的意思,「食物類別為熱食」且「利潤為15或售出單價為25」,這是我們要的結果


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言