Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak działa funkcja CHAR() w SQL Server (T-SQL)

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) + '[email protected]' AS 'Name/Email';

Wynik:

+--------------+
| Name/Email   |
|--------------|
| Homer
[email protected]              |
+--------------+

Oto jak to wygląda, gdy usuniemy CHAR(13) :

SELECT 'Homer' AS 'Name', '[email protected]' AS 'Email';

Wynik:

+--------+-----------------------+
| Name   | Email                 |
|--------+-----------------------|
| Homer  | [email protected] |
+--------+-----------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PARSE() vs CAST() vs CONVERT() w SQL Server:jaka jest różnica?

  2. Jak utworzyć funkcję SQL Server, aby połączyć wiele wierszy z podzapytania w jedno pole rozdzielane?

  3. Jak połączyć datę z jednego pola z czasem z innego pola - MS SQL Server

  4. Równoległe przywracanie kopii zapasowej serwera SQL Server -2

  5. Jak usunąć część czasu z wartości daty i godziny (SQL Server)?