sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo funciona la función CHAR() en SQL Server (T-SQL)

En SQL Server, T-SQL CHAR() función convierte un int código ASCII a un valor de carácter. En otras palabras, pasa un número entero y la función lo interpreta como el valor del código para un carácter de cadena y devuelve el carácter de cadena correspondiente.

Sintaxis

La sintaxis es así:

CHAR ( integer_expression )

Donde integer_expression es un número entero de 0 a 255.

Si especifica un número entero fuera de este rango, el resultado es NULL . Lo mismo ocurre si proporciona un número entero que expresa solo el primer byte de un carácter de doble byte.

Ejemplo 1:uso básico

Aquí hay un ejemplo para demostrar el uso básico:

SELECT CHAR(67) AS 'Result';

Resultado:

+----------+
| Result   |
|----------|
| C        |
+----------+

Entonces, si cambiamos el número entero, obtenemos un carácter diferente:

SELECT CHAR(255) AS 'Result';

Resultado:

+----------+
| Result   |
|----------|
| ÿ        |
+----------+

Ejemplo 2:enteros múltiples

Esta función no admite varios enteros como argumentos. Si proporciona varios enteros, obtendrá un error.

He aquí un ejemplo:

SELECT CHAR(67, 255) AS 'Result';

Resultado:

The char function requires 1 argument(s).

Tenga en cuenta que esto contrasta con CHAR() de MySQL función (que le permite proporcionar varios enteros).

Ejemplo 3:números enteros fuera de rango

Esta función tampoco admite números enteros fuera del rango de 1 a 255. Si su argumento está fuera de este rango, el resultado es NULL .

He aquí un ejemplo:

SELECT CHAR(256) AS 'Result';

Resultado:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Esto contrasta nuevamente con CHAR() de MySQL función, que acepta números enteros mayores de 255 (en cuyo caso, se convierten automáticamente en múltiples bytes de resultado).

Ejemplo 4:inserción de caracteres de control

Aquí hay un ejemplo del uso de CHAR(13) para imprimir caracteres posteriores en una nueva línea:

SELECT 'Homer' + CHAR(13) + '[email protected]' AS 'Name/Email';

Resultado:

+--------------+
| Name/Email   |
|--------------|
| Homer
[email protected]              |
+--------------+

Así es como se ve si eliminamos el CHAR(13) :

SELECT 'Homer' AS 'Name', '[email protected]' AS 'Email';

Resultado:

+--------+-----------------------+
| Name   | Email                 |
|--------+-----------------------|
| Homer  | [email protected] |
+--------+-----------------------+