您好,登錄后才能下訂單哦!
怎么在SQL Server中實現一個模糊查詢功能?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1.用_通配符查詢
"_"號表示任意單個字符,該字符號只能匹配一個字符,利用"_"號可以作為通配符組成匹配模式進行查詢."_"符號可以放在查詢條件 的任意位置,且只能代表一個字符.
例如:查詢數學成績在大于或等于80的同學
selecT * FROM StuScore WHERE Math_Score like '8_'
"%"符號是字符匹配符,能匹配0個或更多字符的任意長度的字符串.
在SQL語句中可以在查詢條件的任意位置放置一個%來代表一個任意長度的字符串,在查詢條件是也可以放置兩個%進行查詢,但是 在查詢條件中最好不要連續出現連個%
例如:查詢姓劉的學生成績
select * from StuScore where Name like '劉%'
利用[]來實現查詢一定范圍的數據,[]號用于指定范圍內的任何單個字符,包括兩端數據.
[]中應用的主要通配符
符號 | 含義 |
Like '5[%]' | 5% |
Like '5%' | 5后面跟0個或者多個字符的字符串 |
Like '[_]n' | _n |
Like'[a-cdf]' | a,b,c,d,or f |
Like '_n' | An ,in, on,(and so on ) |
Like '[-acdf]' | -a,c,d, or f |
Like'[[]' | [ |
Like ']' | ] |
例如:查詢英語成績在95到100之間的同學
select * from StuScore where English_Score like '9[5-9]%'
[^]號用來查詢不在指定范圍或集合內的任何單個字符
例如:查詢數學成績在90分以下的學生
select * from StuScore where Math_Score like '[^9][0-9]'
綜合應用了模式查詢中的幾種形式,同時還使用了NOT ,AND ,OR3種邏輯運算符組成完整的查詢條件,其中,NOT的優先級最高,其次是AND,OR的優先級最低,在使用3種邏輯運算符進行查詢時,注意運算符的優先級別,通過括號也可以改變優先級別,使查詢功能更加豐富和靈活,
注:NOT 表示"非"的關系,表示不滿足NOT后面條件.OR表示"或"的關系,即滿足兩個條件中的一個,AND表示"與"的關系,即同時滿足兩個關系
例如:查詢姓劉的學生數學成績以最后一位數不是7或者是英語在90分以上的
selecT * FROM StuScore WHERE (Name like '劉%') and ((Math_Score like '[^7]') or(English_Score like '9[0-9]'))
like運算符里使用的通配符列表
通配符 | 描述 |
? | 任何單一字符 |
· | 零個或者多個字符 |
# | 任何單一數字(0-9) |
[字符串列表] | 任何在字符串列表中的單一字符 |
[!字符串列表] | 任何不在字符串列表中的單一字符 |
用運算符like處理文本數據類型的字段
like謂詞用于查找字符串,使用時取"?"代表任意單個字符,"*"代表任意字符串,其形式如下幾種情況
(1) 以字符loving 開頭的任何文本:
Like 'loving*'
(2)包含字符loving結尾的任何文本
Like '*loving'
(3)包含字符loving的任何文本
Like '*loving*'
(4)去字符 loving和單個任意后綴字符
Like 'loving?'
(5)取字符loving和單個 任意前綴字符
Like '?loving'
(6)以字符L或V開頭的任何文本
Like '[lv]*'
(7)結尾為s,開頭字符位于m~r之間的文本:
Like '[m-r]s'
(8)以字符m開頭,第二個字符非r的任何文本
Like 'm[^r]*'
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。