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

 

  

 

posted @ 2021-02-05 23:26  郭大侠1  阅读(1015)  评论(0编辑  收藏  举报