計算欄位不存在於資料表中,而是在 SELECT 執行時即時產生。本文詳細示範字串拼接、去除空白、別名命名、算術運算四大核心技巧,附完整輸出範例。
mysql> SELECT CONCAT(RTRIM(vend_name), '(', RTRIM(vend_country), ')')
FROM vendors ORDER BY vend_name;
LTRIM():去左側空白RTRIM():去右側空白TRIM():去兩側空白(MySQL 8.0+ 支援 TRIM(BOTH 'x' FROM col) 指定字符)-- 訂單 20005 明細
mysql> SELECT prod_id, quantity, item_price
FROM orderitems WHERE order_num = 20005;
+---------+----------+------------+
| prod_id | quantity | item_price |
+---------+----------+------------+
| ANV01 | 10 | 5.99 |
| ANV02 | 3 | 9.99 |
| TNT2 | 5 | 10.00 |
| FB | 1 | 10.00 |
+---------+----------+------------+
-- 計算擴展價格:quantity * item_price
mysql> SELECT prod_id, quantity, item_price,
quantity * item_price AS expanded_price
FROM orderitems WHERE order_num = 20005;
+---------+----------+------------+----------------+
| prod_id | quantity | item_price | expanded_price |
+---------+----------+------------+----------------+
| ANV01 | 10 | 5.99 | 59.90 |
| ANV02 | 3 | 9.99 | 29.97 |
| TNT2 | 5 | 10.00 | 50.00 |
| FB | 1 | 10.00 | 10.00 |
+---------+----------+------------+----------------+
優先級:* / 高於 + -。複雜表達式建議加括號明確意圖:(quantity * item_price) + discount。
CONCAT() 拼接字串,配合 TRIM() 淨化資料AS alias 給計算欄位命名,提升可讀性並供後續子句引用+ - * / 直接在 SELECT 列表中使用