sql >> Databáze >  >> RDS >> Sqlserver

Jak zřetězit řetězce na serveru SQL pomocí CONCAT()

Na serveru SQL Server můžete zřetězit dva nebo více řetězců pomocí T-SQL CONCAT() funkce. Můžete také použít operátor zřetězení řetězců SQL Serveru (+ ) udělat to samé. Obojí je vysvětleno zde.

Na serveru SQL Server (a v jakémkoli prostředí počítačového programování) je zřetězení řetězců operace spojování řetězců znaků end-to-end.

Zde je příklad:

SELECT CONCAT('Peter', ' ', 'Griffin') AS 'Full Name';

Výsledek:

Full Name    
-------------
Peter Griffin

Všimněte si, že jsem zde ve skutečnosti zřetězil 3 řetězce. Zřetězil jsem křestní jméno, příjmení plus mezeru.

Kdybych nepřidal prostor, vypadalo by to takto:

SELECT CONCAT('Peter', 'Griffin') AS 'Full Name';

Výsledek:

Full Name   
------------
PeterGriffin

Což může nebo nemusí být výsledek, který hledáte.

Takže pokud to aplikujeme na databázi, pak dotaz může vypadat nějak takto:

SELECT CONCAT(FirstName, ' ', LastName) AS 'Full Name'
FROM Individuals
WHERE IndividualId = '1';

Výsledek:

Full Name    
-------------
Peter Griffin

Pokud spojujete více než dva řetězce a potřebujete mezeru (nebo jiný oddělovač), zvažte použití CONCAT_WS() funkce. To vám umožní určit oddělovač, který se má použít mezi jednotlivými řetězci. Oddělovač stačí zadat pouze jednou a použije se pro každý řetězec, který je zřetězen, takže nemusíte znovu psát mezi jednotlivými řetězci.

Argumenty NULL

Pokud znáte MySQL, možná víte, že má také CONCAT() funkce. Jeden rozdíl mezi CONCAT() SQL Serveru funkce a CONCAT() MySQL Funkce je způsob, jakým zacházejí s NULL argumenty.

V MySQL je to CONCAT() funkce vrací NULL pokud je nějaký argument NULL . V SQL Server však můžete přidat NULL argument, aniž by to vedlo k NULL výsledek.

MySQL

Zde je to, co MySQL dělá:

SELECT CONCAT('Homer', NULL, 'Simpson') AS 'Full Name';

Výsledek:

+-----------+
| Full Name |
+-----------+
| NULL      |
+-----------+

SQL Server

Zde je to, co SQL Server dělá:

SELECT CONCAT('Peter', NULL, 'Griffin') AS 'Full Name';

Výsledek:

Full Name   
------------
PeterGriffin

Další způsob zřetězení – operátor zřetězení řetězců (+ )

SQL Server poskytuje další způsob zřetězení řetězců. Můžete použít + operátor zřetězení řetězců.

SELECT 'Peter' + ' ' + 'Griffin' AS 'Full Name';

Výsledek:

Full Name    
-------------
Peter Griffin

  1. Soulad nabídky s poptávkou Výzva

  2. Vizualizace dat v Microsoft Power BI

  3. Oprava poškozeného kódování UTF-8

  4. Příklady SIN() v SQL Server