例如,我有一个表格,其中列“示例”为NUMBER(5,2),如果我正确 - 最大输入值为999,99。
可以通过查询值获取可以存储在该列中的值吗?可以是任何SQL查询还是java api?
答案 0 :(得分:2)
试试这个
ResultSet rs = ...
ResultSetMetaData md = rs.getMetaData();
int precision = md.getPrecision(column);
int scale = md.getScale(column);
答案 1 :(得分: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");
答案 2 :(得分:0)
select max(column_name) as 'Max_number' from table_name