sqlserver查詢長括號[資料

雲草桑發表於2020-11-13

sqlserver萬用字元轉義
select * from [user] where loginname like ‘%[%’'是不行的,_ 被認為是任意的字元。
應為
select * from [user] where loginname like ‘%[[]%’

如果想查詢“_cs”結尾的的賬戶
select * from [user] where loginname like '%cs’是不行的, 被認為是任意的字元。

sqlserver中包含以下萬用字元:

萬用字元 含義
% 包含零個或更多字元的任意字串。
_ 任何單個字元。
[ ] 指定範圍(例如 [a-f])或集合(例如 [abcdef])內的任何單個字元。
[^] 不在指定範圍(例如 [^a - f])或集合(例如 [^abcdef])內的任何單個字元

所以需要轉義字元,有兩種寫法:
select * from [user] where loginname like ‘%[_]cs’
select * from [user] where loginname like ‘%/_cs’ escape’/’

使用“[]”轉義
符號 含義
LIKE ‘5[%]’ 5%
LIKE ‘5%’ 5 後跟 0 個或更多字元的字串
LIKE ‘[_]n’ _n
LIKE ‘_n’ an, in, on (and so on)
LIKE ‘[a-cdf]’ a, b, c, d, or f
LIKE ‘[-acdf]’ -, a, c, d, or f
LIKE ‘[ [ ]’ [
LIKE ‘]’ ]

使用 ESCAPE 關鍵字定義轉義符
在模式中,當轉義符置於萬用字元之前時,該萬用字元就解釋為普通字元。
例如,要搜尋在任意位置包含字串 5% 的字串,請使用:WHERE ColumnA LIKE ‘%5/%%’ ESCAPE ‘/’

例子:
查詢VersionName 中包含2%字串的資料
select * from T_DataVersion where VersionName like ‘%2[%]%’
select * from T_DataVersion where VersionName like ‘%2/%%’ ESCAPE ‘/’

相關文章