入力内容と完全に一致するレコードを返すか、完全に一致するものが見つからない場合は最も近い一致を返す 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 )