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) + '[email protected]' AS 'Name/Email';
Resultat:
+--------------+ | Name/Email | |--------------| | Homer [email protected] | +--------------+
Sådan ser det ud, hvis vi fjerner CHAR(13)
:
SELECT 'Homer' AS 'Name', '[email protected]' AS 'Email';
Resultat:
+--------+-----------------------+ | Name | Email | |--------+-----------------------| | Homer | [email protected] | +--------+-----------------------+