首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 彙總函數與純量函數速查手冊

     編輯:DB2 教學

DB2 SQL 內建函數分為「彙總函數」與「純量函數」兩大類。前者對一組值運算回傳單一結果,後者對單一值運算回傳單一值。本文整理常用函數定義與應用場景,供查詢撰寫快速參考。

一、彙總函數

作用於群組資料列,常搭配 GROUP BY 使用。

函數 說明 範例
AVG(expr)回傳群組數值平均值(總和/筆數)SELECT AVG(salary) FROM emp
COUNT(*) / COUNT(expr)回傳列數或非 NULL 個數SELECT COUNT(*) FROM emp
MAX(expr)回傳群組最大值SELECT MAX(hiredate) FROM emp
MIN(expr)回傳群組最小值SELECT MIN(salary) FROM emp
SUM(expr)回傳群組數值總和SELECT SUM(sales) FROM orders
STDDEV(expr)回傳標準差SELECT STDDEV(score) FROM exam
VARIANCE(expr)回傳變異數SELECT VARIANCE(price) FROM product

進階:彙總函數搭配 DISTINCT

SELECT COUNT(DISTINCT deptno) FROM emp;  -- 不重複部門數

二、純量函數

逐列運算,回傳單一值,可用於 SELECT、WHERE、SET 等子句。

分類 函數 說明
數學ABS(n)絕對值
MOD(n, m)餘數
SQRT(n)平方根
POWER(n, m)n 的 m 次方
RAND()隨機浮點數 0~1
字串SUBSTR(str, pos, len)擷取子字串
CONCAT(str1, str2)串接字串(或用 ||)
UPPER / LOWER大小寫轉換
TRIM / LTRIM / RTRIM移除空白
LENGTH(str)位元組長度(圖形字串為雙位元組字元數)
HEX(expr)回傳十六進位表示
日期時間YEAR(dt)擷取年份
MONTH(dt)擷取月份
DAY(dt)擷取日期
CURRENT DATE / TIME / TIMESTAMP系統當前日期/時間/時間戳
DAYS(dt)日期轉整數(自 0001-01-01 起算天數)
轉換/條件CAST(expr AS type)資料型態轉換
COALESCE(v1, v2, ...)回傳第一個非 NULL 值
NULLIF(v1, v2)若 v1=v2 則回傳 NULL,否則回傳 v1
CASE WHEN ... THEN ... ELSE ... END條件邏輯運算

三、常見組合應用範例

-- 每部門最高薪資與平均薪資
SELECT deptno, MAX(salary) AS max_sal, AVG(salary) AS avg_sal
FROM emp
GROUP BY deptno;

-- 字串清洗與日期篩選
SELECT UPPER(TRIM(ename)) AS name, HIREDATE
FROM emp
WHERE YEAR(HIREDATE) = 2023
  AND MOD(EMPNO, 2) = 0;

小結

熟練掌握彙總與純量函數,能大幅簡化 SQL 邏輯、提升查詢可讀性與效能。建議收藏本表,撰寫複雜報表查詢時隨時查閱。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved