-3

我的一列中有非数值。我在下面使用运算符之间,但我认为不建议在运算符之间使用非数值,有人可以建议我如何重写这个查询。BETWEEN 显示正确的结果,但我不能在此处将其用于非数值:

select * from test
where textnumber between ('a64') AND ('a64.3');
4

1 回答 1

2

您总是可以将 aBETWEEN分解成它的组成部分。

SELECT * 
FROM test
WHERE textnumber >= 'a64'
  AND textnumber <= 'a64.3';

事实上,如果您阅读 Aaron Bertrand 的博客,BETWEEN 和魔鬼有什么共同点?你会看到他实际上推荐了它。特别是对于日期,虽然这不是你正在使用的。

还要注意字符串和数字不一样。例如'a64.30'NOT被上述查询拾取。

于 2013-07-22T17:14:32.390 回答