我需要在SQL中使用Select进行查询,其中我必须显示哪个字段更接近数字PI(3,141592...(。我该怎么做?
select * from Table where --????;
对于 MySQL 和 PostgreSQL,您可以按ABS(col - 3.141592)
对结果进行排序,并使用LIMIT 1
获得最接近的值,例如
SELECT col
FROM yourtable
ORDER BY ABS(col - 3.141592)
LIMIT 1
对于 SQL Server,请使用TOP 1 col
并删除LIMIT 1
;对于 ANSI SQL,您可以使用FETCH FIRST 1 ROW
代替LIMIT 1
。
Postgres有一个方便的函数pi()
所以你不需要对值进行硬编码。 所以:
select t.*
from Table t
order by abs(t.col - pi())
limit 1;