Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come funziona la funzione CHAR() in SQL Server (T-SQL)

In SQL Server, T-SQL CHAR() la funzione converte un int Codice ASCII in un valore di carattere. In altre parole, si passa un numero intero e la funzione lo interpreta come il valore del codice per un carattere stringa e restituisce il carattere stringa corrispondente.

Sintassi

La sintassi è questa:

CHAR ( integer_expression )

Dove integer_expression è un numero intero compreso tra 0 e 255.

Se specifichi un numero intero al di fuori di questo intervallo, il risultato è NULL . Lo stesso vale se fornisci un numero intero che esprime solo il primo byte di un carattere a doppio byte.

Esempio 1 – Utilizzo di base

Ecco un esempio per dimostrare l'utilizzo di base:

SELECT CHAR(67) AS 'Result';

Risultato:

+----------+
| Result   |
|----------|
| C        |
+----------+

Quindi, se cambiamo il numero intero, otteniamo un carattere diverso:

SELECT CHAR(255) AS 'Result';

Risultato:

+----------+
| Result   |
|----------|
| ÿ        |
+----------+

Esempio 2:numeri interi multipli

Questa funzione non supporta più interi come argomenti. Se fornisci più numeri interi, riceverai un errore.

Ecco un esempio:

SELECT CHAR(67, 255) AS 'Result';

Risultato:

The char function requires 1 argument(s).

Nota che questo è in contrasto con CHAR() di MySQL funzione (che consente di fornire più numeri interi).

Esempio 3 – Interi fuori intervallo

Questa funzione inoltre non supporta numeri interi al di fuori dell'intervallo da 1 a 255. Se il tuo argomento è al di fuori di questo intervallo, il risultato è NULL .

Ecco un esempio:

SELECT CHAR(256) AS 'Result';

Risultato:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Questo è ancora una volta in contrasto con CHAR() di MySQL funzione, che accetta numeri interi maggiori di 255 (in tal caso, vengono automaticamente convertiti in più byte di risultati).

Esempio 4 – Inserimento di caratteri di controllo

Ecco un esempio di utilizzo di CHAR(13) per stampare i caratteri successivi su una nuova riga:

SELECT 'Homer' + CHAR(13) + '[email protected]' AS 'Name/Email';

Risultato:

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

Ecco come appare se rimuoviamo CHAR(13) :

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

Risultato:

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