2013-07-22 30 views
-3

我的列中有一个非数字值。我在下面的运算符之间使用,但我认为不建议运算符之间的非数字值,有人可能会建议我如何重写此查询。之间显示正确的结果,但我不能用它来这里非数值:替代SQL之间为非数字值

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

你想通过这个查询得到什么值? – mishik

+0

如何删除where子句中的字母并将其添加回select中。它总是一个字母? – logixologist

+0

我想要得到一个使用BETWEEN运算符作为后端SQL的a64,但它不适用于我在代码中使用的逻辑。在没有使用BETWEEN运算符的情况下,其他方式是什么?此外,我不想为此目的创建任何临时表。 –

回答

2

您可以随时向上突破BETWEEN到它的组成部分。

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

事实上,如果你阅读阿龙贝特朗的博客What do BETWEEN and the devil have in common?你会发现他其实建议吧。特别是对于日期,虽然这不是你正在使用的。

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

+0

工作。谢谢 –