Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да свържете низове в SQL Server с CONCAT()

В SQL Server можете да свържете два или повече низа, като използвате T-SQL CONCAT() функция. Можете също да използвате оператора за конкатенация на низове на SQL Server (+ ) да направите същото. И двете са обяснени тук.

В SQL Server (и във всяка среда за компютърно програмиране) конкатенацията на низове е операция на свързване на низове от символи от край до край.

Ето един пример:

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

Резултат:

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

Имайте предвид, че всъщност свързах 3 низа тук. Свързах първото име, фамилното име плюс интервал.

Ако не добавих пространството, щеше да изглежда така:

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

Резултат:

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

Което може да бъде или не е резултатът, който търсите.

Така че, ако приложим това към база данни, тогава заявката може да изглежда така:

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

Резултат:

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

Ако свързвате повече от два низа и имате нужда от интервал (или друг разделител), помислете за използването на CONCAT_WS() функция. Това ви позволява да зададете разделител, който да се използва между всеки низ. Трябва само веднъж да посочите разделителя и той се използва за всеки конкатениран низ, което ви спестява от необходимостта да го въвеждате отново между всеки низ.

NULL аргументи

Ако сте запознати с MySQL, може би знаете, че той също има CONCAT() функция. Една разлика обаче между CONCAT() на SQL Server функция и CONCAT() на MySQL функцията е как те обработват NULL аргументи.

В MySQL, CONCAT() функцията връща NULL ако някой аргумент е NULL . В SQL Server обаче можете да добавите NULL аргумент без това да доведе до NULL резултат.

MySQL

Ето какво прави MySQL:

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

Резултат:

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

SQL сървър

Ето какво прави SQL Server:

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

Резултат:

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

Друг начин за конкатенация – Операторът за конкатенация на низове (+ )

SQL Server предоставя друг начин за конкатенация на низове. Можете да използвате + оператор за конкатенация на низове.

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

Резултат:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL XOR оператор

  2. Автоматично увеличаване на индекса за Microsoft SQL Server 2008 R2

  3. Събиране на данни за производителността с помощта на инструмента SQLDiag | Отстраняване на проблеми с производителността на SQL Server -6

  4. SQL замества всички NULL

  5. План за изпълнение на SQL Server — какво е това и как помага при проблеми с производителността?