本文實例講述了SqlServer2016模糊匹配的三種方式及效率問題。分享給大家供大家參考,具體如下:
數據庫是Sqlserver 2016版
現在業務需求是:要查詢出企業名稱為以下幾個的,XXX,XXXX等等:
第一種方式:like '%XXX%' OR like '%XXXX%'
1
2
3
4
5
6
7
|
select cName from tAccountAuditing where cName like '%測試moa000154%' OR cName like '%測試集團上海事業部%' and activeAuditingCodeFromJdjr = 1 |
第二種方式:PATINDEX('%XXX%',cName) > 0
1
2
3
4
5
6
|
select cName from tAccountAuditing where ( PATINDEX( '%測試moa000154%' ,cName) > 0 OR PATINDEX( '%測試集團上海事業部%' ,cName) > 0 ) and activeAuditingCodeFromJdjr = 1 |
第三種方式:CHATINDEX('XXX',cName) > 0
這里不要百分號的啊
1
2
3
4
5
6
|
select cName from tAccountAuditing where ( CHARINDEX( '測試moa000154' ,cName) > 0 OR CHARINDEX( '測試集團上海事業部' ,cName) > 0 ) and activeAuditingCodeFromJdjr = 1 |
效率上的話,后兩種比like都要好~
希望本文所述對大家SQL Server數據庫程序設計有所幫助。
原文鏈接:https://blog.csdn.net/xb12369/article/details/72820166