SQL Server 萬用字元 查詢(一)

2021-10-11 03:26:07 字數 3075 閱讀 2206

@r星校長

1關:萬用字元%的使用

如何使用萬用字元%模糊匹配資料內容

在所有萬用字元中,最常用的萬用字元要數%了。使用了%就意味著,你能從現有的資料中匹配到任意個數的字元(注意,可以是不止乙個字元喲)。

語法規則為:

select 欄位名 

from 表名

where 欄位名 like

'資料%'

;

舉個例子我們想從表customers中檢索到所有叫alice的消費者的所有資料。表customers的內容如下圖所示。大家可以看到,我們有alice nicholasalice edwards兩個都叫alice的人,該如何做才能同時匹配到他們兩個呢?

輸入:

select

*from customers

where cust_name like

'alice%'

輸出:

檢索過程為:

在這個例子裡,我們使用了模糊匹配模式alice%,執行後,資料庫會檢索出所有以alice為開頭的字串來,無論alice後有多長的字串資料庫都能檢索出來。

tips:

注意,模式匹配是大小寫敏感的!如果你檢索的是alice%,那就什麼都檢索不到了!

使用萬用字元%模糊匹配資料內容的任意部分

如果,你想檢索的內容既不在字串的頭部,也不在字串的尾部,而是在它們的中間,你該如何檢索呢?

舉個例子

我們想從表customers中得檢索到所有擁有yahoo郵箱的消費者的所有資料。表customers的內容如下圖所示:

如果我們還按剛才的方法,看看我們能檢索到什麼?

輸入:

select

*from customers

where cust_email like

'yahoo%'

輸出:

啊哦!什麼都沒檢索到!那是因為,yahoo%模式嚴格匹配的是以yahoo開頭的字串。而大家可以看到,在我們的例子中,包含yahoo字串的郵箱位址是以不同名字作為字串開頭的。

所以,要想匹配到五花八門的名字,我們需要把它們都變成萬用字元%

輸入:

select

*from customers

where cust_email like

'%yahoo%'

輸出:

檢索過程為:

想象一下,如果你在cust_email中檢索a%m,會得到什麼樣的結果?

下面輪到你們來試一試了。

程式設計要求

我們已經為你建好了資料庫與資料表,並新增了相應的資料內容。你只需補全右側**片段中retrieving with wildcard %begin-end區間的**,檢索表products中所有帶toy的產品的所有內容。

其中表products的內容如下圖所示:

測試說明

測試過程:

如果操作正確,你將得到如下的結果:

開始你的任務吧,祝你成功!

use mall

goset nocount on

---------- retrieving with wildcard % ----------

-- ********** begin ********** --

select

*from products where prod_name like

'%toy%'

;-- ********** end ********** --

go

sqlserver中的萬用字元

模糊查詢,使用萬用字元 下劃線代表任意乙個字元,該符號只能匹配乙個字元 百分號表示0個或多個字元,即任意長度的字串 表示範圍 表示不屬於範圍,即範圍取反 select from myusers where username like 1 2 select from myusers where use...

like萬用字元查詢

要在 match expression 中搜尋並且可以包括下列有效萬用字元的特定字串。pattern 的最大長度可達 8,000 位元組。萬用字元 說明 示例 包含零個或多個字元的任意字串。where title like computer 將查詢在書名中任意位置包含單詞 computer 的所有書...

SQL SERVER 入門高階教程 萬用字元

like操作符 1.1 百分號 萬用字元 sql語句 select prod id,prod name from products where prod name like fish sql語句分析 這條語句表示從products中檢索出prod name由fish開頭的所有資料,不僅能放在字元末尾...