2013-01-24 49 views
2

例如我有一個表「列」的例子NUMBER(5,2),如果我正確 - 最大輸入值是999,99。
它可能通過查詢值得到,可以存儲在該列中?可能是任何SQL查詢或java api?可以通過在列中查詢最大輸入NUMBER值來獲得?

+0

你的意思是像'SELECT MAX(example)FROM MyTable'? –

+0

你檢查了[最大功能](http://docs.oracle.com/javadb/10.6.1.0/ref/rrefsqlj27781.html)? –

+3

'max(example)'獲得存儲在該列*中的*最大數字。從我如何理解這個問題,它是關於**可以存儲在該列中的最高數字**。 –

回答

1

如果您已經有精度和刻度值,你應該能夠計算出這樣的最大值:

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

如果你不」 t知道精度和縮放值,可以查詢數據庫元數據:

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"); 
+0

謝謝@ jarnbjo,但我不能在這裏接受2正確的答案:(,但Evgeniy Dorofeev第一 – Ifozest

+0

沒問題,但如果你需要查詢數據庫的精度,恕我直言,恕我直言,更好地查詢連接元數據(像我一樣),而不是做Evgeniy建議的一個不必要的「SELECT ... FROM TABLE」。 – jarnbjo

0
select max(column_name) as 'Max_number' from table_name 
2

試試這個

ResultSet rs = ... 
    ResultSetMetaData md = rs.getMetaData(); 
    int precision = md.getPrecision(column); 
    int scale = md.getScale(column); 
相關問題