H2 數據庫中的字符串與數值處理關鍵字

在 H2 數據庫的日常數據處理中,字符串和數值是最常見的數據類型,一批專門處理這類數據的關鍵字,就像精準的 “數據加工器”,能快速完成格式轉換、內容提取、數值計算等操作,讓數據處理既高效又精準。

字符串處理關鍵字

字符串處理關鍵字能對文本數據進行各種加工,CONCAT、SUBSTRING、TRIM、LOWER、UPPER是其中的常用成員,覆蓋了拼接、截取、清洗、大小寫轉換等場景。

CONCAT用於拼接多個字符串,比如將用户的姓和名合併成完整姓名:

SELECT CONCAT(last_name, first_name) AS full_name FROM user_info;

如果需要在中間添加分隔符,直接在參數中加入即可:

SELECT CONCAT(user_id, '-', username) AS user_code FROM users;

這樣就能生成類似 “1001 - 張三” 的用户編碼,方便識別。

SUBSTRING負責截取字符串的指定部分,格式為SUBSTRING(字符串, 起始位置, 長度),起始位置從 1 開始計數。比如從訂單號 “ORD20240615001” 中提取日期部分:

SELECT SUBSTRING(order_no, 4, 8) AS order_date FROM orders;

這裏從第 4 個字符開始,截取 8 個字符,就能得到 “20240615” 的日期字符串。

TRIM可以去除字符串前後的空格或指定字符,比如清理用户輸入時不小心多打的空格:

SELECT TRIM(username) AS clean_username FROM users;

如果要去除特定字符,比如訂單號前後的星號 “*”:

SELECT TRIM('*' FROM order_no) AS clean_order_no FROM orders;

LOWER和UPPER分別將字符串轉為全小寫和全大寫,適合統一格式。比如將用户名統一轉為小寫後查詢:

SELECT username FROM users WHERE LOWER(username) = 'zhangsan';

這樣無論存儲的是 “ZhangSan” 還是 “ZHANGSAN”,都能被正確匹配。

數值處理關鍵字

數值處理關鍵字專注於數字運算和格式化,ROUND、CEIL、FLOOR、SUM、AVG能應對各種計算需求,讓數值結果更符合業務要求。

ROUND用於對數值四捨五入,可指定保留的小數位數。比如將商品價格四捨五入保留 1 位小數:

SELECT product_name, ROUND(price, 1) AS rounded_price FROM products;

若不指定小數位數,默認四捨五入到整數:

SELECT ROUND(123.6) AS result; -- 結果為124

CEIL和FLOOR分別用於向上取整和向下取整。比如計算商品重量的包裝箱數量(向上取整,不能有小數):

SELECT product_name, CEIL(weight / 5) AS box_count FROM products;

這裏假設每個箱子最多裝 5kg,即使餘數不足 1 也需要一個箱子。而計算折扣後的整數金額(向下取整):

SELECT FLOOR(original_price * 0.8) AS discount_integer FROM products;

SUM和AVG是常用的聚合函數,分別用於計算總和和平均值。比如統計每個用户的總消費金額:

SELECT user_id, SUM(pay_amount) AS total_spent FROM orders GROUP BY user_id;

計算某類商品的平均價格:

SELECT category_id, AVG(price) AS avg_price FROM products GROUP BY category_id;

結合ROUND還能美化結果,比如保留兩位小數的平均價格:

SELECT category_id, ROUND(AVG(price), 2) AS avg_price FROM products GROUP BY category_id;

這些字符串和數值處理關鍵字,就像數據處理的 “瑞士軍刀”,能應對各種文本和數字加工場景。在實際業務中,生成組合編碼、清洗髒數據、計算統計指標等操作,都能通過它們輕鬆實現,讓數據處理過程更簡潔、結果更規範,為後續的數據分析和業務決策打下良好基礎。