當前位置:才華齋>設計>網頁設計>

sql max函式的使用方法

網頁設計 閱讀(1.25W)

在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值。