sql >> Database >  >> RDS >> Sqlserver

Strings samenvoegen in SQL Server met CONCAT()

In SQL Server kunt u twee of meer tekenreeksen samenvoegen met behulp van de T-SQL CONCAT() functie. U kunt ook de tekenreeksaaneenschakelingsoperator van SQL Server gebruiken (+ ) om hetzelfde te doen. Beide worden hier uitgelegd.

In SQL Server (en in elke computerprogrammeeromgeving) is tekenreeksaaneenschakeling de bewerking van het end-to-end samenvoegen van tekenreeksen.

Hier is een voorbeeld:

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

Resultaat:

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

Merk op dat ik hier eigenlijk 3 strings heb samengevoegd. Ik heb de voornaam, de achternaam en een spatie aaneengeschakeld.

Als ik de spatie niet had toegevoegd, zou het er zo hebben uitgezien:

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

Resultaat:

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

Wat wel of niet het resultaat is waarnaar u op zoek bent.

Dus als we dit toepassen op een database, dan zou de query er ongeveer zo uit kunnen zien:

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

Resultaat:

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

Als u meer dan twee tekenreeksen aaneenvoegt en u een spatie (of een ander scheidingsteken) nodig heeft, kunt u overwegen de CONCAT_WS() te gebruiken functie. Hiermee kunt u een scheidingsteken opgeven dat tussen elke tekenreeks moet worden gebruikt. U hoeft het scheidingsteken maar één keer op te geven en het wordt gebruikt voor elke tekenreeks die aaneengeschakeld is, zodat u het niet opnieuw hoeft te typen tussen elke tekenreeks.

NULL-argumenten

Als u bekend bent met MySQL, weet u misschien dat het ook een CONCAT() heeft functie. Er is echter één verschil tussen de CONCAT() functie en MySQL's CONCAT() functie is hoe ze omgaan met NULL argumenten.

In MySQL is de CONCAT() functie retourneert NULL als een argument NULL is . In SQL Server kunt u echter een NULL . toevoegen argument zonder dat dit resulteert in een NULL resultaat.

MySQL

Dit is wat MySQL doet:

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

Resultaat:

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

SQL-server

Dit is wat SQL Server doet:

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

Resultaat:

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

Een andere manier om samen te voegen – de tekenreeksaaneenschakeling (+ )

SQL Server biedt een andere manier om tekenreeksen samen te voegen. U kunt de + . gebruiken tekenreeksaaneenschakelingsoperator.

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

Resultaat:

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

  1. Splits een kolom in meerdere rijen

  2. Gegroepeerde LIMIT in PostgreSQL:toon de eerste N rijen voor elke groep?

  3. Hoe het jsonb-type van PostgreSQL 9.4 naar float te converteren?

  4. Hoe ongewenste voorlooptekens uit een string in MySQL te verwijderen