(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('%[经理|主任|主席|书记]%','测主任测试测试测试')

  

原文地址:https://www.cnblogs.com/gered/p/14380222.html