ASCII (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric

Retorna o valor do código ASCII do caractere mais à esquerda de uma expressão de caractere.

Convenções de sintaxe de Transact-SQL

Sintaxe

ASCII ( character_expression )  

Argumentos

character_expression
Uma expressão do tipo char ou varchar.

Tipos de retorno

int

Comentários

ASCII significa American Standard Code for Information Interchange. Ela serve como um padrão de codificação de caractere para computadores modernos. Veja a seção Caracteres imprimíveis do ASCII para obter uma lista de caracteres ASCII.

ASCII é um conjunto de caracteres de 7 bits. ASCII estendido é um conjunto de caracteres de 8 bits que não é tratado pela função ASCII.

Exemplos

a. Este exemplo pressupõe um conjunto de caracteres ASCII e retorna o valor ASCII para 6 caracteres.

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];  

Veja a seguir o conjunto de resultados.

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

B. Este exemplo mostra como um valor ASCII de 7 bits é retornado corretamente, mas um valor ASCII estendido de 8 bits não é tratado.

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

Veja a seguir o conjunto de resultados.

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

Para verificar se os resultados acima são mapeados para o ponto de código de caractere correto, use os valores de saída com a função CHAR ou NCHAR:

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

Veja a seguir o conjunto de resultados.

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

No resultado anterior, observe que o caractere para o ponto de código 195 é Ã e não æ. Isso ocorre porque a função ASCII pode ler o primeiro fluxo de 7 bits, mas não o bit extra. O ponto de código correto para o caractere æ pode ser encontrado usando a função UNICODE, que tem a capacidade de retornar o ponto de código de caractere correto:

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

Veja a seguir o conjunto de resultados.

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

Confira também

CHAR (Transact-SQL)
NCHAR (Transact-SQL)
UNICODE (Transact-SQL)
Funções de cadeia de caracteres (Transact-SQL)