糯米文學吧

位置:首頁 > 設計 > 網頁設計

sql max函數的使用方法

在SQL數據庫中,最大/最小值函數—MAX/MIN是經常要用到的。下面小編給大家帶來sql max函數的使用方法,歡迎大家閲讀

sql max函數的使用方法

sql max函數的使用方法

當需要了解一列中的最大值時,可以使用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, TSEX, MAX (AGE)

FROM TEACHER

因為聚合函數處理的是數據組,在本例中,MAX函數將整個TEACHER表看成一組,而TNAME、DNAME和TSEX的數據都沒有進行任何分組,因此SELECT語句沒有邏輯意義。同樣的道理,下面的代碼也是無效的。

SELECT TNAME, DNAME, TSEX,SAL ,AGE

FROM TEACHER

WHERE AGE=MAX (AGE)

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

實例8 在WHERE子句中使用子查詢返回最大值

查詢TEACHER表中年紀最大的教師的教工號、姓名、性別等信息。

實例代碼:

SELECT TNAME, DNAME, TSEX, 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值。

標籤:SQL max 函數