In SQL Server is de T-SQL CHAR()
functie converteert een int ASCII-code naar een tekenwaarde. Met andere woorden, u geeft een geheel getal door en de functie interpreteert het als de codewaarde voor een tekenreeks en retourneert het bijbehorende tekenreeksteken.
Syntaxis
De syntaxis gaat als volgt:
CHAR ( integer_expression )
Waar integer_expression
is een geheel getal van 0 tot en met 255.
Als u een geheel getal opgeeft buiten dit bereik, is het resultaat NULL
. Hetzelfde geldt als u een geheel getal opgeeft dat alleen de eerste byte van een dubbelbyteteken uitdrukt.
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld om het basisgebruik te demonstreren:
SELECT CHAR(67) AS 'Result';
Resultaat:
+----------+ | Result | |----------| | C | +----------+
Dus als we het gehele getal veranderen, krijgen we een ander teken:
SELECT CHAR(255) AS 'Result';
Resultaat:
+----------+ | Result | |----------| | ÿ | +----------+
Voorbeeld 2 – Meerdere gehele getallen
Deze functie ondersteunt niet meerdere gehele getallen als argumenten. Als u meerdere gehele getallen opgeeft, krijgt u een foutmelding.
Hier is een voorbeeld:
SELECT CHAR(67, 255) AS 'Result';
Resultaat:
The char function requires 1 argument(s).
Merk op dat dit in tegenstelling is tot MySQL's CHAR()
functie (waarmee u meerdere gehele getallen kunt opgeven).
Voorbeeld 3 – Gehele getallen buiten bereik
Deze functie ondersteunt ook geen gehele getallen buiten het bereik van 1 tot 255. Als uw argument buiten dit bereik valt, is het resultaat NULL
.
Hier is een voorbeeld:
SELECT CHAR(256) AS 'Result';
Resultaat:
+----------+ | Result | |----------| | NULL | +----------+
Dit is weer in tegenstelling tot MySQL's CHAR()
functie, die gehele getallen groter dan 255 accepteert (in dat geval worden ze automatisch geconverteerd naar meerdere resultaatbytes).
Voorbeeld 4 – Controletekens invoegen
Hier is een voorbeeld van het gebruik van CHAR(13)
volgende tekens op een nieuwe regel afdrukken:
SELECT 'Homer' + CHAR(13) + '[email protected]' AS 'Name/Email';
Resultaat:
+--------------+ | Name/Email | |--------------| | Homer [email protected] | +--------------+
Zo ziet het eruit als we de CHAR(13)
. verwijderen :
SELECT 'Homer' AS 'Name', '[email protected]' AS 'Email';
Resultaat:
+--------+-----------------------+ | Name | Email | |--------+-----------------------| | Homer | [email protected] | +--------+-----------------------+