正如其他人所提到的,重新设计最终是更好的行动方案,无论是在效率还是数据完整性方面。但是,如果您绝对不能更改结构,一种可能的解决方法是创建一个允许等级描述的查找表,以及每个等级的数字等级值:
GradeID | GradeText | Rating
1 | Fair | 0
2 | Good | 1
3 | Very Good | 2
4 | Ideal | 3
5 | Signature Ideal | 4
然后从查找表上的查询中填充您的选择列表。请务必ORDER BY Rating ASC
使用评级编号作为列表值。然后在您的操作页面上,使用所选值按范围过滤。(显然验证所选范围也有效)
SELECT t.ColumnName1, t.ColumnName2
FROM SomeTable t INNER JOIN YourLookupTable lt ON lt.Grade = t.GradeText
WHERE lt.Rating BETWEEN <cfqueryparam value="#form.dropdown1#" cfsqltype="cf_sql_integer">
AND <cfqueryparam value="#form.dropdown2#" cfsqltype="cf_sql_integer">
同样,我会建议重组。但是,如果这确实不是一种选择,则上述方法应该有效。