題目來自:牛客sql篇.
題目描述:有乙個員工表employees簡況如下:
請你查詢employees表所有emp_no為奇數,且last_name不為mary的員工資訊,並按照hire_date逆序排列,以上例子查詢結果如下:
方法一:使用mod()
mod(a,b) 在sql中的意思是 a / b 的餘數
mod(id, 2)=1 是指id是奇數。
mod(id, 2)=0 是指id是偶數。
select
*from employees
where
mod(emp_no,2)
=1and last_name <>
'mary'
order
by hire_date desc
;
方法二:使用%
如id是奇數:(id % 2) = 1;
id是偶數:(id % 2) = 0;
select
*from employees
where emp_no %2=
1and last_name <>
'mary'
order
by hire_date desc
;
方法三:使用&
如id是奇數:(id & 1) = 1;
id是偶數:(id & 1) = 0;
select
*from employees
where emp_no &1=
1and last_name <>
'mary'
order
by hire_date desc
;
判斷偶數也可以使用如id = (id >> 1 << 1),先除2,再乘2,和原來的值相等就是偶數,不等就是奇數;
上面的方法只能判斷全是數字的情況,如果數字**現其他字元,如*,就不能用上面的方法判斷了,這時候可以使用==正規表示式==
借鑑:查詢奇數
select
*from employees
where emp_no regexp
'[13579]$';
查詢偶數
select
*from employees
where emp_no regexp
'[02468]$'
解釋一下:^a:以 a 為開頭;
a$:以a結尾;
.:匹配任何字元;
[abc]:[字元集合],包含中括號裡的字元;
[^abc]:不包含中括號裡的字元;
1041 奇偶數判斷
題目描述 給定乙個整數,判斷該數是奇數還是偶數。如果n是奇數,輸出odd 如果n是偶數,輸出even。輸入 輸入僅一行,乙個大於零的正整數n。輸出 輸出僅一行,如果n是奇數,輸出odd 如果n是偶數,輸出even。注 odd 表示奇數,even 表示偶數 輸入樣例 5 輸出樣例 odd 問題分析 整...
wikioi 2473 判斷奇偶數
題目描述 description 鍵盤輸入乙個正整數n,程式設計判斷該數是奇數還是偶數,如是奇數則輸出資訊 odd 如是偶數則輸出 even 輸入描述 input description 一行乙個整數n 輸出描述 output description 一行乙個字串,如是奇數則輸出資訊 odd 如是偶...
SQL奇偶數快速查詢
目錄 查詢奇數 查詢偶數 方法解釋 問題拓展 字串 使用正規表示式解決 正規表示式補充介紹 今天想查詢身份證號是以奇數結尾和以偶數結尾的問題,隨便看了一下網上的方法,大多都是下面情況 查詢奇數的方法 1 1的二進位制是0001,與運算子 1 1 1,1 0 0,0 1 0,0 0 0 所以可以保證最...