W SQL Server, T-SQL CHAR() funkcja konwertuje int Kod ASCII na wartość znakową. Innymi słowy, przekazujesz liczbę całkowitą, a funkcja interpretuje ją jako wartość kodu dla znaku ciągu i zwraca odpowiedni znak ciągu.
Składnia
Składnia wygląda tak:
CHAR ( integer_expression )
Gdzie integer_expression jest liczbą całkowitą od 0 do 255.
Jeśli określisz liczbę całkowitą spoza tego zakresu, wynikiem będzie NULL . To samo dotyczy sytuacji, gdy podasz liczbę całkowitą, która wyraża tylko pierwszy bajt znaku dwubajtowego.
Przykład 1 – Podstawowe użycie
Oto przykład demonstrujący podstawowe użycie:
SELECT CHAR(67) AS 'Result';
Wynik:
+----------+ | Result | |----------| | C | +----------+
Więc jeśli zmienimy liczbę całkowitą, otrzymamy inny znak:
SELECT CHAR(255) AS 'Result';
Wynik:
+----------+ | Result | |----------| | ÿ | +----------+
Przykład 2 – Wiele liczb całkowitych
Ta funkcja nie obsługuje wielu liczb całkowitych jako argumentów. Jeśli podasz wiele liczb całkowitych, otrzymasz błąd.
Oto przykład:
SELECT CHAR(67, 255) AS 'Result';
Wynik:
The char function requires 1 argument(s).
Zauważ, że jest to w przeciwieństwie do CHAR() w MySQL funkcja (która pozwala na podanie wielu liczb całkowitych).
Przykład 3 – liczby całkowite spoza zakresu
Ta funkcja nie obsługuje również liczb całkowitych spoza zakresu od 1 do 255. Jeśli twój argument jest poza tym zakresem, wynikiem jest NULL .
Oto przykład:
SELECT CHAR(256) AS 'Result';
Wynik:
+----------+ | Result | |----------| | NULL | +----------+
Jest to znowu w przeciwieństwie do CHAR() w MySQL funkcja, która akceptuje liczby całkowite większe niż 255 (w takim przypadku są one automatycznie konwertowane na wiele bajtów wyniku).
Przykład 4 – Wstawianie znaków kontrolnych
Oto przykład użycia CHAR(13) aby wydrukować kolejne znaki w nowej linii:
SELECT 'Homer' + CHAR(13) + 'example@sqldat.com' AS 'Name/Email';
Wynik:
+--------------+ | Name/Email | |--------------| | Homer example@sqldat.com | +--------------+
Oto jak to wygląda, gdy usuniemy CHAR(13) :
SELECT 'Homer' AS 'Name', 'example@sqldat.com' AS 'Email';
Wynik:
+--------+-----------------------+ | Name | Email | |--------+-----------------------| | Homer | example@sqldat.com | +--------+-----------------------+