前文已有涉及,這里作為總結重新整理一下。
一、函數
1、算術函數
NUMERIC 是大多數 DBMS 都支持的一種數據類型,通過 NUMBERIC ( 全體位數, 小數位數 ) 的形式來指定數值的大小。
-- +-*/ --余數 SELECT n, p, MOD(n, p) AS mod_col FROM SampleMath; --絕對值 SELECT m, ABS(m) AS abs_col FROM SampleMath; --四舍五入 SELECT m, n, ROUND(m, n) AS round_col FROM SampleMath;
2、字符串函數
--字符串拼接 SELECT str1, str2, str3, CONCAT(str1, str2, str3) AS str_concat FROM SampleStr --字符串長度 SELECT str1, LENGTH(str1) AS len_str FROM SampleStr; --大小寫轉換 SELECT str1, UPPER/LOWER(str1) AS low_str FROM SampleStr WHERE str1 IN ('ABC', 'aBC', 'abc') --字符串替換str1中的str2換為str3 SELECT str1, str2, str3, REPLACE(str1, str2, str3) AS rep_str FROM SampleStr; --字符串截取 FROM截取的起始位置FOR截取的字符數 SELECT str1, SUBSTRING(str1 FROM 3 FOR 2) AS sub_str FROM SampleStr;
3、日期函數
--當前日期 SELECT CURRENT_DATE; --當前時間 SELECT CURRENT_TIME; --當前時間戳 SELECT CURRENT_TIMESTAMP; --截取日期元素 SELECT CURRENT_TIMESTAMP, EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS year, EXTRACT(MONTH FROM CURRENT_TIMESTAMP) AS month, EXTRACT(DAY FROM CURRENT_TIMESTAMP) AS day, EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS hour, EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) AS minute, EXTRACT(SECOND FROM CURRENT_TIMESTAMP) AS second;
4、轉換函數
--類型轉換 SELECT CAST('0001' AS SIGNED INTEGER) AS int_col; SELECT CAST('2009-12-14' AS DATE) AS date_col; --將 NULL 轉換為其他值 --返回可變參數中左側開始第 1 個不是 NULL 的值 SELECT COALESCE(NULL, 1) AS col_1, COALESCE(NULL, 'test', NULL) AS col_2, COALESCE(NULL, NULL, '2009-11-01') AS col_3;
5、聚合函數
COUNT、SUM、AVG、MAX、MIN
更多函數與運算符
二、謂詞
謂詞的作用就是“判斷是否存在滿足某種條件的記錄”。如果存在這樣的記錄就返回真(TRUE),如果不存在就返回假(FALSE)。
--部分一致查詢 LIKE --范圍查詢 BETWEEN --判斷是否為NULL IS NULL、IS NOT NULL --OR 的簡便用法 IN --謂詞的主語是“記錄”...沒懂! EXISTS
三、CASE 表達式
--格式 CASE WHEN <求值表達式> THEN <表達式> WHEN <求值表達式> THEN <表達式> WHEN <求值表達式> THEN <表達式> . . . ELSE <表達式> END
-- 使用搜索CASE表達式的情況 SELECT product_name, CASE WHEN product_type = '衣服' THEN 'A :' | |product_type WHEN product_type = '辦公用品' THEN 'B :' | |product_type WHEN product_type = '廚房用具' THEN 'C :' | |product_type ELSE NULL END AS abc_product_type FROM Product; -- 使用簡單CASE表達式的情況 SELECT product_name, CASE product_type WHEN '衣服' THEN 'A :' || product_type WHEN '辦公用品' THEN 'B :' || product_type WHEN '廚房用具' THEN 'C :' || product_type ELSE NULL END AS abc_product_type FROM Product;
--使用IF代替CASE表達式 SELECT product_name, IF( IF( IF(product_type = '衣服', CONCAT('A :', product_type), NULL) IS NULL AND product_type = '辦公用品', CONCAT('B :', product_type), IF(product_type = '衣服', CONCAT('A :', product_type), NULL)) IS NULL AND product_type = '廚房用具', CONCAT('C :', product_type), IF( IF(product_type = '衣服', CONCAT('A :', product_type), NULL) IS NULL AND product_type = '辦公用品', CONCAT('B :', product_type), IF(product_type = '衣服', CONCAT('A :', product_type), NULL))) AS abc_product_type FROM Product;
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END