sql >> Databasteknik >  >> RDS >> Sqlserver

Hur CHAR()-funktionen fungerar i SQL Server (T-SQL)

I SQL Server, T-SQL CHAR() funktion konverterar en int ASCII-kod till ett teckenvärde. Med andra ord, du skickar in ett heltal, och funktionen tolkar det som kodvärdet för ett strängtecken och returnerar motsvarande strängtecken.

Syntax

Syntaxen ser ut så här:

CHAR ( integer_expression )

Där integer_expression är ett heltal från 0 till 255.

Om du anger ett heltal utanför detta intervall blir resultatet NULL . Detsamma gäller om du anger ett heltal som endast uttrycker den första byten av ett dubbelbytetecken.

Exempel 1 – Grundläggande användning

Här är ett exempel för att demonstrera den grundläggande användningen:

SELECT CHAR(67) AS 'Result';

Resultat:

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

Så om vi ändrar heltal får vi ett annat tecken:

SELECT CHAR(255) AS 'Result';

Resultat:

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

Exempel 2 – Flera heltal

Den här funktionen stöder inte flera heltal som argument. Om du anger flera heltal får du ett felmeddelande.

Här är ett exempel:

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

Resultat:

The char function requires 1 argument(s).

Observera att detta står i motsats till MySQL:s CHAR() funktion (som låter dig tillhandahålla flera heltal).

Exempel 3 – Heltal utanför intervallet

Den här funktionen stöder inte heller heltal utanför intervallet 1 till 255. Om ditt argument ligger utanför detta intervall är resultatet NULL .

Här är ett exempel:

SELECT CHAR(256) AS 'Result';

Resultat:

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

Detta är återigen i motsats till MySQL:s CHAR() funktion, som accepterar heltal större än 255 (i så fall omvandlas de automatiskt till flera resultatbyte).

Exempel 4 – Infoga kontrolltecken

Här är ett exempel på hur du använder CHAR(13) för att skriva ut efterföljande tecken på en ny rad:

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

Resultat:

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

Så här ser det ut om vi tar bort CHAR(13) :

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

Resultat:

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

  1. Migrera MySQL till PostgreSQL på AWS RDS, del 3

  2. Databasdesign för flerspråkiga applikationer

  3. De fem bästa fördelarna med att migrera till Azure SQL Database

  4. Hur man ändrar en standard MySQL/MariaDB-datakatalog i Linux