sql - 在数据库中查找最接近的数值

标签 sql

我需要找到一个 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/

相关文章:

sql - 在 SQL 中右对齐数字的最佳实践

c# - 如何将 ObjectQuery 与由 OR 子句分隔的 Where 过滤器一起使用

java - JDBC ResultSet 获取具有表别名的列

SQL:满足条件N次的用户列表

MySQL 在插入和更新时自动递增

sql - 在单个 SQL 查询中两次使用不同的列值?

c# - 由于 : Unable to load one or more of the requested types. 导致无法导出检索 LoaderExceptions 属性以获取更多信息。

php - 如果价格已降低,则从 mySQL 数据库获取一行

php - 如何使用 wp_insert_post 和 SQL 查询填充 Wordpress 帖子

php - 使用MySql数据库在php中实现超链接html