本文實例講述了SqlServer2016模糊匹配的三種方式及效率問題。分享給大家供大家參考,具體如下:
數據庫是Sqlserver 2016版
現在業(yè)務需求是:要查詢出企業(yè)名稱為以下幾個的,XXX,XXXX等等:
第一種方式:like '%XXX%' OR like '%XXXX%'
select cName from tAccountAuditing where
cName
like '%測試moa000154%'
OR
cName
like '%測試集團上海事業(yè)部%'
and activeAuditingCodeFromJdjr = 1
第二種方式:PATINDEX('%XXX%',cName) > 0
select cName from tAccountAuditing where
(
PATINDEX('%測試moa000154%',cName) > 0
OR
PATINDEX('%測試集團上海事業(yè)部%',cName) > 0
) and activeAuditingCodeFromJdjr = 1
第三種方式:CHATINDEX('XXX',cName) > 0
這里不要百分號的啊
select cName from tAccountAuditing where
(
CHARINDEX('測試moa000154',cName) > 0
OR
CHARINDEX('測試集團上海事業(yè)部',cName) > 0
) and activeAuditingCodeFromJdjr = 1
效率上的話,后兩種比like都要好~
更多關于SQL Server相關內容感興趣的讀者可查看本站專題:《SQL Server查詢操作技巧大全》、《SQL Server日期與時間操作技巧總結》、《SQL Server存儲過程技巧大全》、《SQL Server索引操作技巧大全》及《SQL Server常用函數匯總》
希望本文所述對大家SQL Server數據庫程序設計有所幫助。
您可能感興趣的文章:- SQLServer中使用擴展事件獲取Session級別的等待信息及SQLServer 2016中Session級別等待信息的增強
- sqlserver 模糊查詢常用方法
- SqlServer使用 case when 解決多條件模糊查詢問題
- SqlServer中模糊查詢對于特殊字符的處理方法
- MSSQL Server 查詢優(yōu)化方法 整理
- sqlserver 中charindex/patindex/like 的比較
- SqlServer參數化查詢之where in和like實現之xml和DataTable傳參介紹
- SqlServer參數化查詢之where in和like實現詳解