CHAR (Transact-SQL)CHAR (Transact-SQL)

APLICA-SE A: simSQL Server (a partir do 2008) simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Essa função converte um código ASCII int em um valor de caractere.This function converts an int ASCII code to a character value.

Ícone de link do tópico Convenções de sintaxe de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxeSyntax

CHAR ( integer_expression )  

ArgumentosArguments

integer_expressioninteger_expression
Um inteiro de 0 a 255.An integer from 0 through 255. CHAR retorna um valor NULL para expressões de inteiro fora desse intervalo, ou quando o inteiro expressa apenas o primeiro byte de um caractere de byte duplo.CHAR returns a NULL value for integer expressions outside this range, or when then integer expresses only the first byte of a double-byte character.

Observação

Alguns conjuntos de caracteres não europeus, como Shift Japanese Industrial Standards, incluem caracteres que podem ser representados em um esquema de codificação de byte único, mas exigem codificação multibyte.Some non-European character sets, such as Shift Japanese Industrial Standards, include characters than can be represented in a single-byte coding scheme, but require multibyte encoding. Para saber mais sobre conjuntos de caracteres, consulte Conjuntos de caracteres multibyte e de byte único.For more information on character sets, refer to Single-Byte and Multibyte Character Sets.

Tipos de retornoReturn types

char(1)char(1)

RemarksRemarks

Use CHAR para inserir caracteres de controle em cadeias de caracteres.Use CHAR to insert control characters into character strings. Esta tabela mostra alguns caracteres de controle usados com frequência.This table shows some frequently used control characters.

Caractere de controleControl character ValorValue
TabTab char(9)char(9)
Alimentação de linhaLine feed char(10)char(10)
Retorno de carroCarriage return char(13)char(13)

ExemplosExamples

A.A. Usando ASCII e CHAR para imprimir valores ASCII de uma cadeia de caracteresUsing ASCII and CHAR to print ASCII values from a string

Este exemplo imprime o valor e o caractere ASCII para cada caractere na cadeia de caracteres New Moon.This example prints the ASCII value and character for each character in the string 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  

Aqui está o conjunto de resultados.Here is the result set.

----------- -
78          N  
----------- -  
101         e  
----------- -  
119         w  
----------- -  
32  
----------- -  
77          M  
----------- -  
111         o  
----------- -  
111         o  
----------- - 
110         n  

B.B. Usando CHAR para inserir um caractere de controleUsing CHAR to insert a control character

Este exemplo usa CHAR(13) para imprimir o nome e o endereço de email de um funcionário em linhas separadas, quando a consulta retorna seus resultados como texto.This example uses CHAR(13) to print the name and e-mail address of an employee on separate lines, when the query returns its results as text. Este exemplo usa o banco de dados AdventureWorks2012AdventureWorks2012.This example uses the AdventureWorks2012AdventureWorks2012 database.

SELECT p.FirstName + ' ' + p.LastName, + CHAR(13)  + pe.EmailAddress   
FROM Person.Person p 
INNER JOIN Person.EmailAddress pe ON p.BusinessEntityID = pe.BusinessEntityID  
  AND p.BusinessEntityID = 1;  
GO  

Aqui está o conjunto de resultados.Here is the result set.

Ken Sanchez
ken0@adventure-works.com

(1 row(s) affected)

C.C. Usando ASCII e CHAR para imprimir valores ASCII de uma cadeia de caracteresUsing ASCII and CHAR to print ASCII values from a string

Este exemplo pressupõe um conjunto de caracteres ASCII.This example assumes an ASCII character set. Ele retorna o valor de caractere de seis valores numéricos de caracteres ASCII diferentes.It returns the character value for six different ASCII character number values.

SELECT CHAR(65) AS [65], CHAR(66) AS [66],   
CHAR(97) AS [97], CHAR(98) AS [98],   
CHAR(49) AS [49], CHAR(50) AS [50];  

Aqui está o conjunto de resultados.Here is the result set.

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

D.D. Usando CHAR para inserir um caractere de controleUsing CHAR to insert a control character

Este exemplo usa CHAR(13) para retornar informações de sys.databases em linhas separadas, quando a consulta retorna seus resultados como texto.This example uses CHAR(13) to return information from sys.databases on separate lines, when the query returns its results as text.

SELECT name, 'was created on ', create_date, CHAR(13), name, 'is currently ', state_desc   
FROM sys.databases;  
GO  

Aqui está o conjunto de resultados.Here is the result set.

name                                      create_date               name                                  state_desc  
--------------------------------------------------------------------------------------------------------------------  
master                    was created on  2003-04-08 09:13:36.390   master                  is currently  ONLINE 
tempdb                    was created on  2014-01-10 17:24:24.023   tempdb                  is currently  ONLINE   
AdventureWorksPDW2012     was created on  2014-05-07 09:05:07.083   AdventureWorksPDW2012   is currently  ONLINE 

E.E. Como usar CHAR para retornar caracteres de byte únicoUsing CHAR to return single-byte characters

Este exemplo usa os valores inteiros e hexadecimais no intervalo válido para ASCII.This example uses the integer and hex values in the valid range for ASCII. A função CHAR é capaz de gerar o caractere japonês de byte único.The CHAR function is able to output the single-byte Japanese character.

SELECT CHAR(188) AS single_byte_representing_complete_character, 
  CHAR(0xBC) AS single_byte_representing_complete_character;  
GO  

Aqui está o conjunto de resultados.Here is the result set.

single_byte_representing_complete_character single_byte_representing_complete_character
------------------------------------------- -------------------------------------------
シ                                           シ                                         

F.F. Como usar CHAR para retornar caracteres multibyteUsing CHAR to return multibyte characters

Este exemplo usa os valores inteiros e hexadecimais no intervalo válido para ASCII.This example uses the an integer and hex values in the valid range for ASCII. No entanto, a função CHAR retorna NULL porque o parâmetro representa apenas o primeiro byte de um caractere multibyte.However, the CHAR function returns NULL because the parameter represents only the first byte of a multibyte character.

SELECT CHAR(129) AS first_byte_of_double_byte_character, 
  CHAR(0x81) AS first_byte_of_double_byte_character;  
GO  

Aqui está o conjunto de resultados.Here is the result set.

first_byte_of_double_byte_character first_byte_of_double_byte_character
----------------------------------- -----------------------------------
NULL                                NULL                                         

Confira tambémSee also

ASCII (Transact-SQL)ASCII (Transact-SQL)
NCHAR (Transact-SQL)NCHAR (Transact-SQL)
UNICODE (Transact-SQL)UNICODE (Transact-SQL)
+ (Concatenação de cadeias de caracteres) (Transact-SQL)+ (String Concatenation) (Transact-SQL)
Funções de cadeia de caracteres (Transact-SQL)String Functions (Transact-SQL)