SQL在非数字值之间的替代方法
我的一列中有非数值。我正在使用下面的中间运算符,但我认为对于非数字值,不建议使用中间运算符,请有人建议我如何重写此查询。BETWEEN显示了正确的结果,但我无法在此处将其用于非数值:SQL在非数字值之间的替代方法,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我的一列中有非数值。我正在使用下面的中间运算符,但我认为对于非数字值,不建议使用中间运算符,请有人建议我如何重写此查询。BETWEEN显示了正确的结果,但我无法在此处将其用于非数值: select * from test where textnumber between ('a64') AND ('a64.3'); 你总是可以把一个中间部分分解成它的组成部分 SELECT * FROM test WHERE textnumber >= 'a64' AND textnumber &l
select * from test
where textnumber between ('a64') AND ('a64.3');
你总是可以把一个中间部分分解成它的组成部分
SELECT *
FROM test
WHERE textnumber >= 'a64'
AND textnumber <= 'a64.3';
事实上,如果你读过亚伦·伯特朗的博客,你会发现他实际上是在推荐它。尤其是约会,尽管你现在不在考虑这个问题
还要注意字符串和数字不一样。例如,“a64.30”将不会被上述查询提取。您希望通过此查询获取哪些值?如何剥离where子句中的字母并将其添加回select中。它总是一个字符的字母吗?我想得到a64,它使用BETWEEN操作符作为后端SQL,但它不适用于代码中的逻辑。不使用中间运算符的另一种方法是什么。此外,我不想为thsi目的创建任何临时表。?你能详细说明一下吗?我刚刚运行了这个查询,它运行得很好。如果你找一个像A64.22这样的值,那就不必考虑了。