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)