ASCII() 函數 (SQL ASCII() Function)
ASCII() 函數用於取得字元對應的 ASCII 碼 (數值)。它返回指定字串中第一個字元的 ASCII 數值。
ASCII 碼是一種字元編碼標準,將字母、數字和符號對應到 0-127 的數值。
💡 相關函數:
CHAR()函數是ASCII()的反向操作,可以將 ASCII 碼轉換回字元。
ASCII() 語法 (Syntax)
ASCII(character)
character:要取得 ASCII 碼的字元或字串。如果輸入多個字元,只會返回第一個字元的 ASCII 碼。
ASCII() 用法範例 (Example)
範例 1:取得單一字元的 ASCII 碼
SELECT ASCII('a') AS LowerA,
ASCII('A') AS UpperA,
ASCII('Z') AS UpperZ;
結果:
| LowerA | UpperA | UpperZ |
|---|---|---|
| 97 | 65 | 90 |
範例 2:字串只取第一個字元
SELECT ASCII('Hello') AS Result;
-- 只會返回 'H' 的 ASCII 碼
結果:
| Result |
|---|
| 72 |
範例 3:數字和符號的 ASCII 碼
SELECT ASCII('0') AS Zero,
ASCII('9') AS Nine,
ASCII(' ') AS Space,
ASCII('@') AS AtSign;
結果:
| Zero | Nine | Space | AtSign |
|---|---|---|---|
| 48 | 57 | 32 | 64 |
常見 ASCII 碼對照
| 字元範圍 | ASCII 碼範圍 |
|---|---|
| 0-9 | 48-57 |
| A-Z | 65-90 |
| a-z | 97-122 |
| 空格 | 32 |
實際應用
判斷字元類型
SELECT Name,
CASE
WHEN ASCII(LEFT(Name, 1)) BETWEEN 65 AND 90 THEN '大寫字母開頭'
WHEN ASCII(LEFT(Name, 1)) BETWEEN 97 AND 122 THEN '小寫字母開頭'
WHEN ASCII(LEFT(Name, 1)) BETWEEN 48 AND 57 THEN '數字開頭'
ELSE '其他'
END AS FirstCharType
FROM customers;
搭配 CHAR() 進行字元轉換
-- 將小寫轉大寫 (透過 ASCII 碼運算)
SELECT CHAR(ASCII('a') - 32) AS UpperA;
-- 結果:A
資料庫支援
| 資料庫 | 函數名稱 |
|---|---|
| MySQL | ASCII() |
| SQL Server | ASCII() |
| PostgreSQL | ASCII() |
| Oracle | ASCII() |
| SQLite | 不支援 (可用替代方案) |
相關主題
- CHAR() - ASCII 碼轉字元
- ASCII 碼對照表 - 完整 ASCII 碼參考