I SQL Server, T-SQL CHAR() funktion konverterer en int ASCII-kode til en tegnværdi. Med andre ord, du indtaster et heltal, og funktionen fortolker det som kodeværdien for et strengtegn og returnerer det tilsvarende strengtegn.
Syntaks
Syntaksen ser sådan ud:
CHAR ( integer_expression )
Hvor integer_expression er et heltal fra 0 til 255.
Hvis du angiver et heltal uden for dette interval, er resultatet NULL . Det samme gælder, hvis du angiver et heltal, der kun udtrykker den første byte af et dobbeltbytetegn.
Eksempel 1 – Grundlæggende brug
Her er et eksempel for at demonstrere den grundlæggende brug:
SELECT CHAR(67) AS 'Result';
Resultat:
+----------+ | Result | |----------| | C | +----------+
Så hvis vi ændrer heltal, får vi et andet tegn:
SELECT CHAR(255) AS 'Result';
Resultat:
+----------+ | Result | |----------| | ÿ | +----------+
Eksempel 2 – Flere heltal
Denne funktion understøtter ikke flere heltal som argumenter. Hvis du angiver flere heltal, får du en fejl.
Her er et eksempel:
SELECT CHAR(67, 255) AS 'Result';
Resultat:
The char function requires 1 argument(s).
Bemærk, at dette er i modsætning til MySQL's CHAR() funktion (som giver dig mulighed for at angive flere heltal).
Eksempel 3 – Heltal uden for rækkevidde
Denne funktion understøtter heller ikke heltal uden for intervallet 1 til 255. Hvis dit argument er uden for dette interval, er resultatet NULL .
Her er et eksempel:
SELECT CHAR(256) AS 'Result';
Resultat:
+----------+ | Result | |----------| | NULL | +----------+
Dette er igen i modsætning til MySQL's CHAR() funktion, som accepterer heltal større end 255 (i så fald konverteres de automatisk til flere resultatbytes).
Eksempel 4 – Indsættelse af kontroltegn
Her er et eksempel på brug af CHAR(13) for at udskrive efterfølgende tegn på en ny linje:
SELECT 'Homer' + CHAR(13) + 'example@sqldat.com' AS 'Name/Email';
Resultat:
+--------------+ | Name/Email | |--------------| | Homer example@sqldat.com | +--------------+
Sådan ser det ud, hvis vi fjerner CHAR(13) :
SELECT 'Homer' AS 'Name', 'example@sqldat.com' AS 'Email';
Resultat:
+--------+-----------------------+ | Name | Email | |--------+-----------------------| | Homer | example@sqldat.com | +--------+-----------------------+