SQL / JPQL'之间'对于表示为字符串的数字

时间:2014-03-18 06:53:23

标签: sql jpql

我有一个表格,其中数字表示为字符串。

有没有办法让SQL / JPQL between查询函数好像是整数?

目前between 100 and 110返回1001,1002,1015等。它应该只返回100到110之间的数字。

无法更改列类型。

1 个答案:

答案 0 :(得分:1)

您可以尝试在执行比较之前将值列转换为数值数据类型,如下所示:

SELECT *
FROM YOURTABLE
WHERE CAST(VALUE AS INT) BETWEEN 100 AND 110

这将确保对数值进行比较,而不是文本。

如果您将VARCHAR数据类型的参数作为参数传递,您还需要显式转换它们:

SELECT *
FROM YOURTABLE
WHERE CAST(VALUE AS INT) BETWEEN (CAST @Lower AS INT) AND (CAST @Upper AS INT)