データベース内の最も近い数値を検索する 質問する

データベース内の最も近い数値を検索する 質問する

入力内容と完全に一致するレコードを返すか、完全に一致するものが見つからない場合は最も近い一致を返す 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 スキルは非常に限られているため、どのような助けでもいただければ幸いです。

ベストアンサー1

面積と入力値の差を取得し、絶対値を取るので常に正になり、昇順で並べ替えて最初の値を取得します。

SELECT TOP 1 * FROM [myTable] 
WHERE Name = 'Test' and Size = 2 and PType = 'p'
ORDER BY ABS( Area - @input ) 

おすすめ記事