SQL Server:SQL Like 通配符特殊用法:Escape

    xiaoxiao2024-10-24  80

    SQL中escape的主要用途

    1.使用ESCAPE关键字定义转义符。在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符。例如,要搜索在任意位置包含字符串 5% 的字符串,请使用:

    WHERE ColumnA LIKE '%5/%%' ESCAPE '/'

    2.ESCAPE 'escape_character' 允许在字符串中搜索通配符而不是将其作为通配符使用。escape_character 是放在通配符前表示此特殊用途的字符。

    SELECT * FROM finances WHERE description LIKE 'gs_' ESCAPE 'S' GO

    意思就是:

    比如,我们要搜索一个字符串 “g_” ,如果直接 like "g_",那么 "_"的作用就是通配符,而不是字符,结果,我们会查到比如 "ga","gb","gc",而不是我们需要的 “g_”.

    用 LIKE 'gs_' ESCAPE 'S' 's'表示特殊用法标志

    CREATE TABLE a ( NAME VARCHAR(10) ) go INSERT INTO a SELECT '11"' UNION ALL SELECT '113' UNION ALL SELECT '123' go SELECT * FROM a WHERE NAME LIKE '%/3' ESCAPE '/' --指定用'/'符号来说明跟在其后面的通配符字符为普能字符。(第二个%是字符不是通配符来的) go DROP TABLE a

    结果为:

    name ---------- 113 123

    %:匹配零个及多个任意字符; _:与任意单字符匹配; []:匹配一个范围; [^]:排除一个范围

    SymbolMeaninglike '5[%]'0.05like '[_]n'_nlike '[a-cdf]'a, b, c, d, or flike '[-acdf]'-, a, c, d, or flike '[[]'[like ']']like 'abc[_]d%'abc_d and abc_delike 'abc[def]'abcd, abce, and abcflike '[^1-9]'0like '[^1-9b-z]'0, a

    对于字符串中出现的特殊字符:’%’,’[',’[]’, ‘_’ 可以使用 ‘[]’ 把它们包含起来, 这样在匹配模式(pattern)中,它们就被当作普通字符对待了。

    用 like '[[]' 匹配特殊字符 ‘[’ select 1 where '[ABCDE' like '[[]%' 用 like ']' 匹配特殊字符 ‘]’ select 1 where ']ABCDE' like ']%' 用 like '[[]]' 匹配特殊字符 ‘[]’ select 1 where '[]ABCDE' like '[[]]%%' 用 like ‘[_]’ 匹配特殊字符 ‘_’ select 1 where '_ABCDE' like '[_]%'

    用 like '[%]' 匹配特殊字符 ‘%’

    select 1 where 'ABC
    转载请注明原文地址: https://yun.8miu.com/read-132814.html
    最新回复(0)