(4.57)sql server中的like,sql serverlike多个条件,sql server查找字符中出现了任意一个关键字
【1】like 多值匹配简化写法
USE tempdb GO IF OBJECT_ID('t') IS NOT NULL DROP TABLE t GO CREATE TABLE t( n NVARCHAR(20) ) GO INSERT INTO t(n) VALUES('13幢'),('14幢'),('15幢'),('16幢'),('13#幢'),('14#幢'),('15#幢'),('16#幢') GO
SELECT * FROM t WHERE n LIKE '%1[3-5]%' SELECT * FROM t WHERE n LIKE '%[13|14|15]%' SELECT * FROM t WHERE n LIKE '%1[3|4|5]%'
【2】更高效的多值like
--测试数据 USE tempdb GO IF OBJECT_ID('t') IS NOT NULL DROP TABLE t GO CREATE TABLE t( n NVARCHAR(20) ) GO INSERT INTO t(n) VALUES('13幢'),('14幢'),('15幢'),('16幢'),('13#幢'),('14#幢'),('15#幢'),('16#幢') GO --正式写法 select * from t where exists ( select * from ( values('%13%'),('%14%') ) L(v) where t.n like L.v )
【3】sql server查找字符中出现了任意一个关键字
select PATINDEX('%[经理|主任|主席|书记]%','测试测试主席测试测试') select PATINDEX('%[经理|主任|主席|书记]%','测主任测试测试测试')