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