Mac*_*ver 2 sql t-sql match sql-server-2008
假设您有一个如下所示的查询:
SELECT * FROM client
WHERE identifyingnumber LIKE '%86%'
Run Code Online (Sandbox Code Playgroud)
有时可能存在完全匹配,这意味着识别号码为86.使用与查询顶部完全匹配的记录的最佳方法是什么?
考虑到完全匹配必须是所有匹配的字符串长度中的最短匹配.
SELECT *
FROM client
WHERE identifyingnumber LIKE '%86%'
ORDER BY LEN(identifyingnumber)
Run Code Online (Sandbox Code Playgroud)
由于LEN操作,这将是一个CPU高的查询.您可以考虑在客户端表中创建一个用于识别号码长度的列 - 可能作为计算列 - 以在select上保存一些CPU.
至于什么是最好的 - 这取决于你的系统.Paolo提供的UNION选项也是我想到的第一件事,除了需要处理两个不同的参数值,假设你参数化你的查询(我一如既往).