oracle max 函式和min 函式

2021-07-10 16:59:30 字數 1832 閱讀 5414

當需要了解一列中的最大值時,可以使用max()函式;同樣,當需要了解一列中的最小值時,可以使用min()函式。語法如下。

select          max (column_name) / min (column_name)

from            table_name

說明:列column_name中的資料可以是數值、字串或是日期時間資料型別。max()/min()函式將返回與被傳遞的列同一資料型別的單一值。

例項7 max()函式的使用

查詢teacher表中教師的最大年齡。例項**:

select max (age) as maxage

from     teacher

執行結果如圖1示。

圖1teacher表中教師的最大年齡

然而,在實際應用中得到這個結果並不是特別有用,因為經常想要獲得的資訊是具有最大年齡的教師的教工號、姓名、性別等資訊。

然而sql不支援如下的select語句。

select tname, dname, t***, max (age)

from     teacher

因為聚合函式處理的是資料組,在本例中,max函式將整個teacher表看成一組,而tname、dname和t***的資料都沒有進行任何分組,因此select語句沒有邏輯意義。同樣的道理,下面的**也是無效的。

select tname, dname, t***,sal ,age

from     teacher

where   age=max (age)

解決這個問題的方法,就是在where子句中使用子查詢來返回最大值,然後再基於這個返回的最大值,查詢相關資訊。

例項8 在where子句中使用子查詢返回最大值

查詢teacher表中年紀最大的教師的教工號、姓名、性別等資訊。

例項**:

select tname, dname, t***, sal, age

from     teacher

where   age=(select max (age) from    teacher)

執行結果如圖2示。

圖2在where子句中使用子查詢返回最大值

max()和min()函式不僅可以作用於數值型資料,也可以作用於字串或是日期時間資料型別的資料。

例項max()函式用於字元型資料

如下面**:

select max (tname) as maxname

from     teacher

執行結果如圖3示。

圖3在字串資料型別中使用max的結果

可見,對於字串也可以求其最大值。

說明對字元型資料的最大值,是按照首字母由a~z的順序排列,越往後,其值越大。當然,對於漢字則是按照其全拼拼音排列的,若首字元相同,則比較下乙個字元,以此類推。

當然,對與日期時間型別的資料也可以求其最大/最小值,其大小排列就是日期時間的早晚,越早認為其值越小,如下面的例項。

例項 max()、min()函式用於時間型資料

從course表中查詢最早和最晚考試課程的考試時間。其中course表的結構和資料可參見本書6.1節的表6-1。例項**:

select min (ctest) as early_date,

max (ctest) as late_date

from     course

執行結果如圖4示。

圖4course表中最早和最晚考試課程的考試時間

可見,返回結果的資料型別與該列定義的資料型別相同。

注意確定列中的最大值(最小值)時,max( )(min( ))函式忽略null值。但是,如果在該列中,所有行的值都是null,則max( )/min( )函式將返回null值。

oracle max 函式和min 函式

當需要了解一列中的最大值時,可以使用max 函式 同樣,當需要了解一列中的最小值時,可以使用min 函式。語法如下。select max column name min column name from table name 說明 列column name中的資料可以是數值 字串或是日期時間資料型別...

oracle max 函式和min 函式

當需要了解一列中的最大值時,可以使用max 函式 同樣,當需要了解一列中的最小值時,可以使用min 函式。語法如下。select max column name min column name from table name 說明 列column name中的資料可以是數值 字串或是日期時間資料型別...

Max()函式與Min()函式

在資料庫中max 求最大值,min 求最小值 用法用例 select max column name min from table name 函式括號列中的資料可以是數值,字串,或者日期型別 例項 查詢teacher表中的最大年齡 select max age from teacher 但實際中這樣...