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;

結果:

LowerAUpperAUpperZ
976590

範例 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;

結果:

ZeroNineSpaceAtSign
48573264

常見 ASCII 碼對照

字元範圍ASCII 碼範圍
0-948-57
A-Z65-90
a-z97-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

資料庫支援

資料庫函數名稱
MySQLASCII()
SQL ServerASCII()
PostgreSQLASCII()
OracleASCII()
SQLite不支援 (可用替代方案)

相關主題