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) + 'example@sqldat.com' AS 'Name/Email';
Resultaat:
+--------------+ | Name/Email | |--------------| | Homer example@sqldat.com | +--------------+
Zo ziet het eruit als we de CHAR(13) . verwijderen :
SELECT 'Homer' AS 'Name', 'example@sqldat.com' AS 'Email';
Resultaat:
+--------+-----------------------+ | Name | Email | |--------+-----------------------| | Homer | example@sqldat.com | +--------+-----------------------+