首頁辦公利器SQL-資料庫SQL語法小技巧-WHERE條件

SQL語法小技巧-WHERE條件

by PartyLin

文章最後更新於 2021 年 1 月 20 日 下午 09:12

WHERE 條件
 SELECT 欄位
 FROM 表格名
 WHERE Condition(運算式)
 WHERE條件運算式說明:
 字串的完全比對
 SELECT 姓名
 FROM 學生資料
 WHERE 姓名='王小明'
 做為字串的資料必須用『'』單引號包起來,單引號以外的字元,系統都會嘗試解釋為程式語法。
 字串的部分比對LIKE 及 萬用字元%
 SELECT 姓名
 FROM 學生資料
 WHERE 姓名 LIKE '王%'
 萬用字元變化說明:(只有文字型態欄位可以使用)
 %:任何含有0個或更多字元的字串。
 WHERE 住址 LIKE '%中山北路%',可找出所有住址中含有『中山北路』的紀錄。
 (底線):任何單一字元。 WHERE 住址 LIKE '台北',可找出住址開頭為『台北』,且字數等於3個字 的紀錄。
 []:在指定範圍([a-f])或集合([abcdef])中的任何單一字元。
 WHERE PID LIKE '[A-C]%',可找出PID開頭為『A-C』的紀錄。(括號內的範圍只可以是數字或英文字母)
 [^]:不在指定範圍([^a-f])或集合([^abcdef])中的任何單一字元。
 WHERE PID LIKE 'A[^2]%',可找出PID開頭為『A』,並排除第二位是2 的紀錄。
 ※萬用字元如已做為資料本身的話(例如:30%),此時必須使用跳脫字元(ESCAPE) '\' 。
 WHERE 欄位 LIKE '%30\%%'
 空值NULL的比對
 SELECT 電話 FROM 學生資料 WHERE 電話 Is Null
 SELECT 電話 FROM 學生資料 WHERE 電話 Is Not Null
 空字串不等於NULL。(字串型態的欄位,可設定空字串為預設值)
 欄位內完全為空,才是NULL。
 相反的比對NOT
 SELECT * FROM 學生成績 WHERE NOT (英文成績 BETWEEN 60 AND 100)
 BETWEEN .. AND .. 必須由小而大。只有日期及數字格式可以使用。
 這段語法的結果,將會找出英文成績不在60~100的學生資料。
 包含的比對IN
 SELECT 欄位
 FROM 表格名
 WHERE 欄位 IN ('值1', '值2', …)
 可代替OR的設計,且較為精簡。
 例如:
 SELECT 姓名 FROM 學生資料 WHERE (姓名 IN ('王小明','蘇小美','陳大同'))
 等於
 SELECT 姓名 FROM 學生資料 WHERE (姓名='王小明' OR 姓名='蘇小美' OR 姓名='陳大同')
 也可使用NOT IN,例如:WHERE (姓名 NOT IN ('王小明','蘇小美','陳大同'))
 多個條件的比對AND/OR
 SELECT 欄位
 FROM 表格名
 WHERE 條件 [AND|OR] 條件 

發表留言

本網站放置cookies,務求為您提供最佳的網上瀏覽體驗。 同意閱讀更多

%d 位部落客按了讚: