分享方式:


ASCII (Transact-SQL)

適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲

傳回字元運算式最左側字元的 ASCII 字碼值。

Transact-SQL 語法慣例

語法

ASCII ( character_expression )  

引數

character_expression
charvarchar 類型的運算式

傳回類型

int

備註

ASCII 代表「美國訊息交換標準代碼」(American Standard Code for Information Interchange)。 它是現代電腦的字元編碼標準。 如需 ASCII 字元清單,請參閱 ASCII 的<可列印字元>(Printable characters) 一節。

ASCII 是一組 7 位元的字元集。 擴充 ASCII 或高 ASCII 是一組 8 位元的字元集,其不會由 ASCII 函式進行處理。

範例

A. 這個範例假設使用 ASCII 字元集,並傳回 6 個字元的 ASCII 值。

SELECT ASCII('A') AS A, ASCII('B') AS B,   
ASCII('a') AS a, ASCII('b') AS b,  
ASCII(1) AS [1], ASCII(2) AS [2];  

結果集如下所示。

A           B           a           b           1           2  
----------- ----------- ----------- ----------- ----------- -----------  
65          66          97          98          49          50  

B. 此範例會示範如何正確傳回 7 位元 ASCII 值,但並未處理 8 位元的擴充 ASCII 值。

SELECT ASCII('P') AS [ASCII], ASCII('æ') AS [Extended_ASCII];

結果集如下所示。

ASCII       Extended_ASCII
----------- --------------
80          195

若要驗證上述結果是否對應到正確的字元字碼元素,請搭配 CHARNCHAR 函式來使用輸出值:

SELECT NCHAR(80) AS [CHARACTER], NCHAR(195) AS [CHARACTER];

結果集如下所示。

CHARACTER CHARACTER
--------- ---------
P         Ã

請注意先前結果中,字碼元素 195 的字元是 Ã,而非 æ。 這是因為 ASCII 函式能夠讀取前 7 個位元資料流,但無法讀取額外的位元。 您可以使用 UNICODE 函式來找到 æ 字元的正確字碼元素,該函式可以傳回正確的字元字碼元素:

SELECT UNICODE('æ') AS [Extended_ASCII], NCHAR(230) AS [CHARACTER];

結果集如下所示。

Extended_ASCII CHARACTER
-------------- ---------
230            æ

另請參閱

CHAR (Transact-SQL)
NCHAR (Transact-SQL)
UNICODE (Transact-SQL)
字串函數 (Transact-SQL)