Home [SQL筆記] like 模糊查詢
Post
Cancel

[SQL筆記] like 模糊查詢

  • % 代表匹配0~多個字符。(0個、一個、多個)。 like '張%'like '%尚%'
  • _ 代表匹配有,且有一個。 like '張_'
  • [] 代表匹配的範圍內。7到9之間 =>[7,8,9][7-9]
  • [^] 代表匹配不在範圍內。不是2,3,4,5 => [^2,3,4,5]或是寫[^2-5]

模糊查詢

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
--查詢出姓張的員工
select * from Employee where EmployeeName like '張%'
--查詢出名字中含有"尚"的員工資料
select * from Employee where EmployeeName like '%尚%'
--查詢出名字中含有"尚",或是"史"的員工資料
select * from Employee where EmployeeName like '%尚%' or EmployeeName like '%史%'
--查詢出姓張的員工,名字是2個字
select * from Employee where EmployeeName like '張_'
select * from Employee where SUBSTRING(EmployeeName,1,1)='張' and LEN(EmployeeName)=2
select SUBSTRING('hello,world',3,1) --從第三個開始取,取1個

--查詢名字最後一個字為香,名字一共是三個字的員工資料
select * from Employee where EmployeeName like '__香'--兩個底線
select * from Employee where SUBSTRING(EmployeeName,3,1)='香' and LEN(EmployeeName) = 3

--查詢電話號碼開頭為0988的員工資料
select * from Employee where EmployeePhone like '0988%'
--查詢電話號碼開頭為0988,第四位好像是7或是8,最後一個號碼是5 的員工資料
select * from Employee where EmployeePhone like '0988[7,8]%5' --方框號[]代表 匹配的範圍內
--查詢電話號碼開頭為0988,第四位好像2-5之間,最後一個號碼不是2和3
select * from Employee where EmployeePhone like '0988[2,3,4,5]%[^2,3]'
select * from Employee where EmployeePhone like '0988[2-5]%[^2-3]' --[2-5]代表2到5之間

https://www.bilibili.com/video/BV1XV411C7TP?p=10

This post is licensed under CC BY 4.0 by the author.