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] 條件


arrow
arrow
    文章標籤
    sql
    全站熱搜

    伊 發表在 痞客邦 留言(0) 人氣()