Home [SQL] 指定搜尋條件[LIKE(%、_)、特殊字元(Escape)、日期(Between And)、複數條件(AND、OR)]
Post
Cancel

[SQL] 指定搜尋條件[LIKE(%、_)、特殊字元(Escape)、日期(Between And)、複數條件(AND、OR)]

指定搜尋條件

符合條件 LIKE(%、_)

1
2
3
4
5
6
7
8
--取得商品名稱含有「電腦」的商品名稱
select [商品名稱] from [dbo].[商品清單] where [商品名稱] like '%電腦%'

--取得商品名稱以「電腦」開頭的商品名稱
select [商品名稱] from [dbo].[商品清單] where [商品名稱] like '電腦%'

--取得商品名稱以「電腦」結尾的商品名稱
select [商品名稱] from [dbo].[商品清單] where [商品名稱] like '%電腦'
  • 百分比% 是指0個字元以上的任意字串與條件一致(NULL除外)。
  • 底線_ 是指1個任意字元與條件一致。

含有特殊字元(Escape轉譯)

1
2
--取得商品名稱中含有「_」的商品名稱
select [商品名稱] from [dbo].[商品清單] where [商品名稱] like '%\_%' escape '\'

如果想要搜尋的資料條件含有底線「_」或百分號「%」等特殊字元時,要讓底線被解釋為字元時,就要使用到ESCAPE

如果依然使用where 商品名稱 like '%_%',那麼底線將被解釋成「1個字元的任意字元」,而無法得到想要的搜尋結果。

日期 Between And

1
2
3
--取得四月份的販賣資料
select * from [dbo].[販賣資料]
where [處理日] between '2006-04-01' and '2006-04-30'

between and不僅可以用在日期上,也可以用在數值上。

指定複數條件(AND、OR)

1
2
3
--取得群組名稱為「周邊設備」或「網路設備」,且進貨單價為$100000以下的商品名稱
select [商品名稱] from [dbo].[商品清單]
where ([群組名稱] = '周邊設備' or  [群組名稱] = '網路設備') and [進貨單價] <= 100000

and優先順序比or高,如果要讓以or所結合的條件先被處理時,要使用括號將其包起來。

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