Maison > base de données > tutoriel mysql > Comment trouver la correspondance numérique la plus proche dans une table de base de données à l'aide de SQL ?

Comment trouver la correspondance numérique la plus proche dans une table de base de données à l'aide de SQL ?

Mary-Kate Olsen
Libérer: 2025-01-05 05:46:43
original
224 Les gens l'ont consulté

How to Find the Closest Numerical Match in a Database Table Using SQL?

Recherche de la valeur numérique la plus proche dans une table de base de données

La tâche à accomplir est de récupérer l'enregistrement qui correspond le plus à une valeur numérique spécifiée à partir d'une base de données. Le SQL Server récupère les enregistrements en fonction des correspondances exactes de plusieurs critères, mais il n'a pas la capacité d'identifier la correspondance la plus proche lorsqu'une correspondance exacte est absente.

Pour relever ce défi, nous pouvons utiliser l'approche suivante :

Calcul de la distance

On commence par calculer la différence absolue entre la cible valeur et le champ « Zone » dans chaque enregistrement de la base de données. La valeur absolue garantit que la distance est toujours positive, permettant une comparaison facile.

Ordre des résultats

Ensuite, nous classons les enregistrements par ordre croissant en fonction de la valeur calculée distance. Cet arrangement place les enregistrements avec la plus petite distance, ou les correspondances les plus proches, au début de l'ensemble de résultats.

Récupération du Top Match

Enfin, nous utilisons le TOP 1 clause pour récupérer l'enregistrement qui a la plus petite distance, représentant la correspondance la plus proche de la valeur cible.

SQL mis à jour Requête

Voici la requête SQL mise à jour qui intègre l'approche ci-dessus :

SELECT TOP 1 *
FROM [myTable]
WHERE Name = 'Test' AND Size = 2 AND PType = 'p'
ORDER BY ABS(Area - @input)
Copier après la connexion

Cette requête renvoie l'enregistrement avec la valeur "Zone" la plus proche de la valeur d'entrée spécifiée @input .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal