WHERE條件
SELECT 欄位
FROM 表格名
WHERE Condition(運算式)
WHERE條件運算式說明:
1. 字串的完全比對
SELECT 姓名
FROM 學生資料
WHERE 姓名='王小明'
做為字串的資料必須用『'』單引號包起來,單引號以外的字元,系統都會嘗試解釋為程式語法。
2. 字串的部分比對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\%%'
3. 空值NULL的比對
SELECT 電話 FROM 學生資料 WHERE 電話 Is Null
SELECT 電話 FROM 學生資料 WHERE 電話 Is Not Null
空字串不等於NULL。(字串型態的欄位,可設定空字串為預設值)
欄位內完全為空,才是NULL。
4. 相反的比對NOT
SELECT * FROM 學生成績 WHERE NOT (英文成績 BETWEEN 60 AND 100)
BETWEEN .. AND .. 必須由小而大。只有日期及數字格式可以使用。
這段語法的結果,將會找出英文成績不在60~100的學生資料。
5. 包含的比對IN
SELECT 欄位
FROM 表格名
WHERE 欄位 IN ('值1', '值2', ...)
可代替OR的設計,且較為精簡。
例如:
SELECT 姓名 FROM 學生資料 WHERE (姓名 IN ('王小明','蘇小美','陳大同'))
等於
SELECT 姓名 FROM 學生資料 WHERE (姓名='王小明' OR 姓名='蘇小美' OR 姓名='陳大同')
也可使用NOT IN,例如:WHERE (姓名 NOT IN ('王小明','蘇小美','陳大同'))
6. 多個條件的比對AND/OR
SELECT 欄位
FROM 表格名
WHERE 條件 [AND|OR] 條件
~relax~
這是一個悠閒放鬆的部落格,請用輕鬆的心情閱讀文章,在忙碌工作之餘療癒自己的身心。
(最近發現我的文章被複製轉貼且沒有註明出處,本部落格的文章皆為原創,若有引用參考也會註明,如有需求請留言告知,謝謝!)
- Feb 14 Mon 2011 13:30
SQL語法小技巧-WHERE條件
文章標籤
全站熱搜
留言列表