我认为这很简单,但我无法理解它。
我有一个包含两列的映射/查找表。 Col1用于从Col2中查找值。
Col1是一个直的INT列,其值以20为增量递增,从500开始。因此,它具有500,520,540等值。这些值中的每一个都映射到Col2中的唯一十进制值。
现在,当我运行查询时,我得到Col1的值不是20的增量。因此,我会被要求从Col2找到类似524.25的值的映射。在这种情况下,它应匹配Col1中520的值,并从Col2返回匹配的十进制值。如果此值为530或更高,则应匹配540,依此类推。
希望这是有道理的。提前致谢。
Vikram Goyal
答案 0 :(得分:8)
您应该能够首先按差异的绝对值对行进行排序(对于最佳匹配行最低),然后取第一行的Col2
。
SELECT Col2
FROM your_table
ORDER BY ABS( Col1 - your_value )
LIMIT 1