我需要找到一个 select 语句,该语句将返回与我的输入完全匹配的记录,或者如果未找到完全匹配则返回最接近的匹配。
这是到目前为止我的选择语句。
SELECT * FROM [myTable]
WHERE Name = 'Test' AND Size = 2 AND PType = 'p'
ORDER BY Area DESC
我需要做的是找到与“区域”字段最接近的匹配项,因此如果我的输入是 1.125 并且数据库包含 2、1.5、1 和 .5,则查询将返回包含 1 的记录。
我的 SQL 技能非常有限,因此我们将不胜感激。
最佳答案
获取面积和输入之间的差异,取绝对值,因此始终为正,然后升序排列并取第一个
SELECT TOP 1 * FROM [myTable]
WHERE Name = 'Test' and Size = 2 and PType = 'p'
ORDER BY ABS( Area - @input )
关于sql - 在数据库中查找最接近的数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/592209/