【问题标题】:Beautify Integer values for comparing as strings美化整数值以作为字符串进行比较
【发布时间】:2010-06-10 13:32:37
【问题描述】:

出于某种原因,我需要将整数值作为字符串输入数据库,然后我想对它们运行查询并将这些整数作为字符串进行比较。有什么方法可以美化整数(以 1 到 1 亿美元为例),以便我可以将它们作为字符串进行比较?

提前致谢。

【问题讨论】:

  • 美化是什么意思?
  • 百万分之一是什么意思? ;-)
  • 一些欧洲语言(当然是法语)的常用术语为 10^9 - 我们在欧洲历来将 10^12 用作十亿。
  • 试着对你想做的事情进行更详细的描述。另外,您的意思是通过计算机(a> b)还是视觉比较?我只问,因为你用了美化这个词。
  • 请提供一些“美化”的例子

标签: java string integer hql string-comparison


【解决方案1】:

根据需要添加尽可能多的前导零

所以数字 1,2,3 变为字符串形式:0000000001, 0000000002, 0000000003 这样字符串比较就正确了

在java中你会使用:

 String.format("%09d", number); 

有 9 个前导零。

【讨论】:

  • 谢谢,我得去看看。
【解决方案2】:

另一种选择是修改您的查询以将字符串值转换回整数。 (下面的伪代码,可能无法为您的数据库编译/工作)

String sql = " SELECT * "
+ " FROM some_table "
+ " WHERE CAST(some_table.int_column_stored_as_string AS INTEGER) = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setInteger(1, myIntValue);

这样做的一个问题是,因为它在每一行上运行一个函数,数据库将无法使用在some_table.int_column_stored_as_string 上定义的任何索引。

【讨论】:

    猜你喜欢
    • 2013-04-22
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    相关资源
    最近更新 更多