sql替换通配符

来源:互联网 发布:知其不可为而为之者 编辑:程序博客网 时间:2024/06/05 05:35

DECLARE @keyword varchar(100)
SET @keyword = '%%'

SET @keyword = REPLACE(@keyword,'\','\\')
SET @keyword = REPLACE(@keyword,'%','\%')
SET @keyword = REPLACE(@keyword,'_','\_')
SET @keyword = REPLACE(@keyword,'[','\[')
SET @keyword = REPLACE(@keyword,']','\]')

SELECT *
FROM (
SELECT string = 'abc\de' UNION ALL
SELECT string = 'abc%de' UNION ALL
SELECT string = 'abc_de' UNION ALL
SELECT string = 'abc[de' UNION ALL
SELECT string = 'abc]de' UNION ALL
SELECT string = 'abc[^d]e' UNION ALL
SELECT string = 'ab[c-d]e' UNION ALL
SELECT string = '2%%2'
) tmp
WHERE string LIKE '%' + @keyword + '%' ESCAPE '\'


通配符 含义
% 包含零个或更多字符的任意字符串。
_ 任何单个字符。
[ ] 指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符。
[^] 不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符。


 

原创粉丝点击