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] | +--------+-----------------------+