Comment joindre un nombre avec la plage de nombre d'une autre table

ID | Count ----------------- 1 | 45 2 | 5 3 | 120 4 | 87 5 | 60 6 | 200 7 | 31 SizeName | LowerLimit | UpperLimit --------------------------------- Small | 0 | 49 Medium | 50 | 99 Large | 100 | 250 

Fondamentalement, une table spécifie un nombre inconnu de " range names " et leurs plages entières associées. Ainsi, une plage de comptage de 0 à 49 dans la table des personnes obtient une « small » désignation. 50-99 obtient ' medium ', etc. Mais j'ai besoin d'être dynamic parce que je ne connais pas les noms de plage ou les valeurs entières. Puis-je le faire en une seule requête ou devrais-je écrire une fonction séparée pour parcourir les possibilités?

Une façon de le faire serait de join les tables, en fonction de si vous voulez garder des valeurs en dehors de vos "noms de plage", ou non, vous pouvez utiliser respectivement LEFT ou INNER join.

 SELECT A.id, A.Count, B.SizeName FROM tableA A LEFT JOIN tableB B ON A.id >= B.LowerLimit AND A.id < B.UpperLimit