SqlServer 2016のあいまいなマッチングの3つの方式と効率の問題の簡単な分析

1289 ワード

この例では、SqlServer 2016のファジイマッチングの3つの方法と効率の問題について説明する.皆さんの参考にしてください.具体的には以下の通りです.
データベースはSqlserver 2016版
現在の業務ニーズは、企業名が以下の通りであること、XXX、XXXXなどである.
1つ目の方法:like '%XXX%' OR like '%XXXX%'

select cName from tAccountAuditing where
cName
like '% moa000154%'
OR
cName
like '% %'
and activeAuditingCodeFromJdjr = 1


2つ目の方法:PATINDEX('%XXX%',cName) > 0

select cName from tAccountAuditing where
(
PATINDEX('% moa000154%',cName) > 0
OR
PATINDEX('% %',cName) > 0
) and activeAuditingCodeFromJdjr = 1


3つ目の方法:CHATINDEX('XXX',cName) > 0ここはパーセンテージを必要としません

select cName from tAccountAuditing where
(
CHARINDEX(' moa000154',cName) > 0
OR
CHARINDEX(' ',cName) > 0
) and activeAuditingCodeFromJdjr = 1


効率的には、後の2種類がlikeよりも良い~
SQL Serverに関する詳細について興味のある読者は、「SQL Serverクエリー操作テクニック大全」、「SQL Server日付と時間操作テクニック総括」、「SQL Serverストレージプロセステクニック大全」、「SQL Serverインデックス操作テクニック大全」および「SQL Server常用関数要約」を参照してください.
本明細書では、SQL Serverデータベースのプログラム設計に役立つことを説明します.