I SQL Server, T-SQL CHAR()
funktion konverterar en int ASCII-kod till ett teckenvärde. Med andra ord, du skickar in ett heltal, och funktionen tolkar det som kodvärdet för ett strängtecken och returnerar motsvarande strängtecken.
Syntax
Syntaxen ser ut så här:
CHAR ( integer_expression )
Där integer_expression
är ett heltal från 0 till 255.
Om du anger ett heltal utanför detta intervall blir resultatet NULL
. Detsamma gäller om du anger ett heltal som endast uttrycker den första byten av ett dubbelbytetecken.
Exempel 1 – Grundläggande användning
Här är ett exempel för att demonstrera den grundläggande användningen:
SELECT CHAR(67) AS 'Result';
Resultat:
+----------+ | Result | |----------| | C | +----------+
Så om vi ändrar heltal får vi ett annat tecken:
SELECT CHAR(255) AS 'Result';
Resultat:
+----------+ | Result | |----------| | ÿ | +----------+
Exempel 2 – Flera heltal
Den här funktionen stöder inte flera heltal som argument. Om du anger flera heltal får du ett felmeddelande.
Här är ett exempel:
SELECT CHAR(67, 255) AS 'Result';
Resultat:
The char function requires 1 argument(s).
Observera att detta står i motsats till MySQL:s CHAR()
funktion (som låter dig tillhandahålla flera heltal).
Exempel 3 – Heltal utanför intervallet
Den här funktionen stöder inte heller heltal utanför intervallet 1 till 255. Om ditt argument ligger utanför detta intervall är resultatet NULL
.
Här är ett exempel:
SELECT CHAR(256) AS 'Result';
Resultat:
+----------+ | Result | |----------| | NULL | +----------+
Detta är återigen i motsats till MySQL:s CHAR()
funktion, som accepterar heltal större än 255 (i så fall omvandlas de automatiskt till flera resultatbyte).
Exempel 4 – Infoga kontrolltecken
Här är ett exempel på hur du använder CHAR(13)
för att skriva ut efterföljande tecken på en ny rad:
SELECT 'Homer' + CHAR(13) + '[email protected]' AS 'Name/Email';
Resultat:
+--------------+ | Name/Email | |--------------| | Homer [email protected] | +--------------+
Så här ser det ut om vi tar bort CHAR(13)
:
SELECT 'Homer' AS 'Name', '[email protected]' AS 'Email';
Resultat:
+--------+-----------------------+ | Name | Email | |--------+-----------------------| | Homer | [email protected] | +--------+-----------------------+