Oracle中取某幾個數的最大值最小值
一直有誤區認為Oracle或者說關系型數據庫中沒有取某些數據中最大值最小值的函數,其實是存在的 分別為:greatest( expr1, expr2, ... expr_n )
least( expr1, expr2, ... expr_n )
如圖:
上述兩個函數都使用 N 個參數,並分別返回最大值和最小值。 另需注意參數可能具有混合數據類型。
具體規則如下:
- 如果任何參數為null,則兩個函數都將立即返回 null ,而不進行任何比較。
- 如果為int或real 上下文中使用函數,或者所有參數都是整數值或real值,那么他們將分別為int和real來比較。
- 如果參數由數字和字符串組成,則函數將它們作成數字進行比較。
- 如果至少一個參數是非二進制(字符)字符串,則函數將將參數作為非二進制字符串進行比較。
- 在所有其他情況下,函數將參數作為二進制字符串進行比較