SQL - 计算字母数字范围内是否存在字母数字值

时间:2010-12-09 10:49:10

标签: sql sql-server sql-server-2008

我在数据库中有一个varchar列,并且有一个需求,因此用户可以输入/从例如/ ABC001到ABC100的范围

我有以下查询但觉得如果该范围内的任何值存在,可能不够严格。

SELECT count(*) FROM MyTable where MyColumn between 'ABC001' and 'ABC005'

我感觉应该使用订单,或者有更好的方法来计算字母数字范围内的值的存在

3 个答案:

答案 0 :(得分:1)

无需订单。那应该是完美的。

答案 1 :(得分:0)

如果要增强该操作,可以在其上创建索引。

按操作顺序在查询执行结束时完成,因此数据将以相同的方式重试。

答案 2 :(得分:0)

OP说:

  

还是有更好的计算方法   一个人的价值观的存在   字母数字范围

最好的方法是:

SELECT count(*) FROM MyTable where MyColumn>='ABC001' and MyColumn<='ABC005'

我发现大多数人都不记得BETWEEN是否包含或排除了“终点”。只需始终使用>=和/或>和/或<=和/或<,您就可以获得更高的清晰度和灵活性。

任何ORDER BY都会应用于符合WHERE条件的结果行集,并且与WHERE过滤无关。如果您希望以特定顺序设置最终结果集,则可以使用它,但它不会影响结果中包含哪些行。