2

例如,我有一个列“示例”NUMBER(5,2) 的表,如果我是对的 - 最大输入值为 999,99。
有可能通过可以存储在该列中的查询值来获取吗?可能是任何 SQL 查询或 java api?

4

3 回答 3

2

试试这个

    ResultSet rs = ...
    ResultSetMetaData md = rs.getMetaData();
    int precision = md.getPrecision(column);
    int scale = md.getScale(column);
于 2013-01-24T10:21:01.013 回答
1

如果您已经有了精度和比例的值,您应该能够像这样计算最大值:

int precision = 5;
int scale = 2;
double maxValue = (Math.pow(10, precision) - 1) / Math.pow(10, scale);

如果您不知道精度和小数位数的值,可以查询数据库元数据:

ResultSet rs = conn.getMetaData().getColumns("", "%", "{TABLENAME}", "{COLUMNNAME}");

if(!rs.next()) {
    // unknown table/column
}

int precision = rs.getInt("COLUMN_SIZE");
int scale = rs.getInt("DECIMAL_DIGITS");
于 2013-01-24T10:31:26.700 回答
0
select max(column_name) as 'Max_number' from table_name
于 2013-01-24T10:14:20.140 回答