CHAR (Transact-SQL)
Convierte un código ASCII int en un carácter.
Se aplica a: SQL Server (SQL Server 2008 a versión actual), Windows Azure SQL Database (Versión inicial a versión actual). |
Convenciones de sintaxis de Transact-SQL
Sintaxis
CHAR ( integer_expression )
Argumentos
- integer_expression
Entero entre 0 y 255. Se devuelve NULL si la expresión de entero no se encuentra en este intervalo.
Tipos de valor devueltos
char(1)
Comentarios
CHAR se puede utilizar para insertar caracteres de control en cadenas de caracteres. En la siguiente tabla se muestran algunos caracteres de control utilizados con frecuencia.
Carácter de control |
Valor |
---|---|
Tab |
char(9) |
Avance de línea |
char(10) |
Retorno de carro |
char(13) |
Ejemplos
A.Usar ASCII y CHAR para imprimir los valores ASCII de una cadena
En el siguiente ejemplo se imprimen el valor y el carácter ASCII de cada carácter de la cadena New Moon.
SET TEXTSIZE 0;
-- Create variables for the character string and for the current
-- position in the string.
DECLARE @position int, @string char(8);
-- Initialize the current position and the string variables.
SET @position = 1;
SET @string = 'New Moon';
WHILE @position <= DATALENGTH(@string)
BEGIN
SELECT ASCII(SUBSTRING(@string, @position, 1)),
CHAR(ASCII(SUBSTRING(@string, @position, 1)))
SET @position = @position + 1
END;
GO
El conjunto de resultados es el siguiente.
----------- -
78 N
----------- -
101 e
----------- -
119 w
----------- -
32
----------- -
77 M
----------- -
111 o
----------- -
111 o
----------- -
110 n
----------- -
B.Usar CHAR para insertar un carácter de control
En el siguiente ejemplo se utiliza CHAR(13) para imprimir el nombre y la dirección de correo electrónico en líneas independientes cuando los resultados se devuelven en texto. En este ejemplo se usa la base de datos AdventureWorks2012.
SELECT p.FirstName + ' ' + p.LastName, + CHAR(13) + pe.EmailAddress
FROM Person.Person p JOIN Person.EmailAddress pe
ON p.BusinessEntityID = pe.BusinessEntityID
AND p.BusinessEntityID = 1;
GO
El conjunto de resultados es el siguiente.
Ken Sanchez
ken0@adventure-works.com
(1 row(s) affected)