我正在尝试在我的java Web应用程序bean中编写HQL查询。在数据库表中,有一列包含数字数据但不包含数字,作为字符串(varchar2)。这是我项目设计的一部分。用户将在GUI上输入数值,并使用HQL查询,bean将检索数据。一个例子:
35(数据库值)< = 40(用户输入的值)
这些值是字符串。不是数字。如何构建我的HQL查询字符串? 我不认为,使用“LIKE”条款会解决,还是呢? 我希望我的问题很明确。
谢谢。
答案 0 :(得分:0)
请注意,当您的列(已转换为数字)超过数字(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 作为默认值,因此它永远不会被视为有效值