Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como a função CHAR() funciona no SQL Server (T-SQL)


No SQL Server, o T-SQL CHAR() função converte um int código ASCII para um valor de caractere. Em outras palavras, você passa um inteiro e a função o interpreta como o valor do código para um caractere de string e retorna o caractere de string correspondente.


Sintaxe


A sintaxe fica assim:
CHAR ( integer_expression )

Onde integer_expression é um número inteiro de 0 a 255.

Se você especificar um número inteiro fora desse intervalo, o resultado será NULL . O mesmo acontece se você fornecer um número inteiro que expresse apenas o primeiro byte de um caractere de byte duplo.

Exemplo 1 – Uso básico


Aqui está um exemplo para demonstrar o uso básico:
SELECT CHAR(67) AS 'Result';

Resultado:
+----------+
| Result   |
|----------|
| C        |
+----------+

Então, se alterarmos o número inteiro, obteremos um caractere diferente:
SELECT CHAR(255) AS 'Result';

Resultado:
+----------+
| Result   |
|----------|
| ÿ        |
+----------+

Exemplo 2 – Vários números inteiros


Esta função não suporta vários inteiros como argumentos. Se você fornecer vários números inteiros, receberá um erro.

Aqui está um exemplo:
SELECT CHAR(67, 255) AS 'Result';

Resultado:
The char function requires 1 argument(s).

Observe que isso está em contraste com o CHAR() do MySQL função (que permite fornecer vários números inteiros).

Exemplo 3 – Inteiros fora do intervalo


Esta função também não suporta números inteiros fora do intervalo de 1 a 255. Se seu argumento estiver fora desse intervalo, o resultado será NULL .

Aqui está um exemplo:
SELECT CHAR(256) AS 'Result';

Resultado:
+----------+
| Result   |
|----------|
| NULL     |
+----------+

Isso está novamente em contraste com o CHAR() do MySQL função, que aceita inteiros maiores que 255 (nesse caso, eles são convertidos automaticamente em vários bytes de resultado).

Exemplo 4 – Inserindo caracteres de controle


Aqui está um exemplo de uso de CHAR(13) para imprimir caracteres subsequentes em uma nova linha:
SELECT 'Homer' + CHAR(13) + '[email protected]' AS 'Name/Email';

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

Aqui está o que parece se removermos o CHAR(13) :
SELECT 'Homer' AS 'Name', '[email protected]' AS 'Email';

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