ASCII (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de análisis SQL en Microsoft FabricAlmacenamiento en Microsoft Fabric

Devuelve el valor del código ASCII del carácter más a la izquierda de una expresión de caracteres.

Convenciones de sintaxis de Transact-SQL

Sintaxis

ASCII ( character_expression )  

Nota:

Para ver la sintaxis de Transact-SQL para SQL Server 2014 (12.x) y versiones anteriores, consulta la Documentación de versiones anteriores.

Argumentos

character_expression
Una expresión de tipo char o varchar.

Tipos de valores devueltos

int

Observaciones

ASCII significa American Standard Code for Information Interchange. Actúa como un estándar de codificación de caracteres para los equipos modernos. Para obtener una lista de caracteres ASCII, vea la sección Caracteres imprimibles de ASCII.

ASCII es un juego de caracteres de 7 bits. ASCII extendido o ASCII alto es un juego de caracteres de 8 bits no controlado por la función ASCII.

Ejemplos

A. En este ejemplo se da por supuesto que es un juego de caracteres ASCII y se devuelve el valor ASCII para seis 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];  

El conjunto de resultados es el siguiente:

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

B. En este ejemplo se muestra cómo se devuelve correctamente un valor ASCII de 7 bits, pero no se controla un valor ASCII extendido de 8 bits.

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

El conjunto de resultados es el siguiente:

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

Para comprobar si los resultados anteriores se asignan al punto de código de carácter correcto, use los valores de salida con la función CHAR o NCHAR:

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

El conjunto de resultados es el siguiente:

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

En el resultado anterior, observe que el carácter del punto de código 195 es à y no æ. Esto se debe a que la función ASCII es capaz de leer la primera secuencia de 7 bits, pero no el bit adicional. El punto de código correcto para el carácter æ se puede encontrar mediante la función UNICODE, que es capaz de devolver el punto de código de carácter correcto:

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

El conjunto de resultados es el siguiente:

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

Vea también

CHAR (Transact-SQL)
NCHAR (Transact-SQL)
UNICODE (Transact-SQL)
String Functions (Transact-SQL) [Funciones de cadena (Transact-SQL)]