我正在尝试查询一个字符串以匹配数据库中的某个范围。该表有 2 列FromCode
和ToCode
.
以下是示例数据(假设表名为CodeList
):
FromCode ToCode
IV1 0AA IV9 9ZZ
IV10 0AA IV28 9ZZ
IV30 0AA IV32 9ZZ
IV36 0AA IV36 9ZZ
IV40 0AA IV49 9ZZ
IV51 0AA IV56 9ZZ
IV63 0AA IV63 9ZZ
所以,如果我运行查询
SELECT *
FROM CodeList
WHERE FromCode <= 'IV1 1AB' AND ToCode >= 'IV1 1AB'
它会返回结果
IV1 0AA IV9 9ZZ
哪个是对的。但是,当我运行这个时:
SELECT *
FROM CodeList
WHERE FromCode <= 'IV2 1AB' AND ToCode >= 'IV2 1AB'
我回来的结果是
IV1 0AA IV9 9ZZ
IV10 0AA IV28 9ZZ
所以,对于人类来说,字符串IV2 2AB
在IV1 0AA - IV9 9ZZ
not之内IV10 0AA - IV28 9ZZ
。
如果有人可以提出更好的方法来搜索数据,将不胜感激。另外,我运行它的引擎是 SQL Server 2012。
非常感谢!