1

我正在尝试在我的 java web 应用程序 bean 中编写一个 HQL 查询。在数据库表中,有一列包含数字数据但不作为数字,作为字符串(varchar2)。这是我项目设计的一部分。用户将在 GUI 上输入一个数值,并通过 HQL 查询,bean 将检索数据。一个例子 :

35(数据库值)<= 40(用户输入值)

这些值是字符串。不是号码。如何构建我的 HQL 查询字符串?我不认为,使用“LIKE”子句将是解决方案,还是这样做?我希望我的问题很清楚。

谢谢你。

4

1 回答 1

0

请注意,当您的列(转换为数字)超过 numeric(19,2) 时,我的解决方案会崩溃

where (case when isNumeric(YOUR_COLUMN) = 1 then cast(YOUR_COLUMN as big_integer) else 99999 end) < USER_INPUT_VALUE

也许您需要调整 else 分支 - 当 YOUR_COLUMN 不是数字时,我选择99999作为默认值,因此它永远不会被视为有效值

于 2013-10-15T12:09:10.240 回答