sql >> Database >  >> RDS >> Database

Strings samenvoegen in SQL

Probleem:

U wilt strings van twee kolommen van een tabel samenvoegen tot één.

Voorbeeld:

Onze database heeft een tabel met de naam student met gegevens in de volgende kolommen:id , first_name en last_name .

id voornaam achternaam
1 Lora Smith
2 Emil Bruin
3 Alex Jackson
4 Martin Davis

Laten we de voornaam in één string toevoegen aan de achternaam van de student. Gebruik een spatie tussen elke naam.

Oplossing:

SELECT first_name || ‘ ‘ || last_name AS full_name
FROM student;

Deze query retourneert records in één kolom met de naam full_name :

volledige_naam
Lora Smith
Emil Brown
Alex Jackson
Martin Davis

Discussie:

Om een ​​string aan een andere toe te voegen en het ene resultaat terug te geven, gebruikt u de || exploitant. Dit voegt twee strings van links en rechts bij elkaar en retourneert één resultaat. Als u de naam van de kolom gebruikt, plaats deze dan niet tussen aanhalingstekens. Als u echter een tekenreekswaarde als spatie of tekst gebruikt, plaatst u deze tussen aanhalingstekens.

In ons voorbeeld hebben we een spatie toegevoegd aan first_name en dan de kolom last_name . Deze nieuwe kolom heet full_name .

U kunt ook een speciale functie gebruiken:CONCAT. Er is een lijst met strings of namen van kolommen nodig om als argumenten samen te voegen:

SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name
FROM student;

De resultaten zijn identiek.

De functie CONCAT() is echter beter voor het ophalen van gegevens uit een kolom met NULL-waarden. Waarom? Omdat, wanneer een NULL wordt opgenomen in de waarden die moeten worden samengevoegd, de operator NULL als resultaat retourneert. In het geval van CONCAT(), wordt NULL niet weergegeven.

Bekijk het resultaat van de || operator als Emill geen achternaam heeft geregistreerd:

SELECT first_name || ‘ ‘ || last_name AS full_name
FROM student;
volledige_naam
Lora Smith
NULL
Alex Jackson
Martin Davis

Kijk naar de CONCAT-functie voor dezelfde gegevens:

SELECT CONCAT(first_name, ‘ ‘, last_name) AS full_name
FROM student;
volledige_naam
Lora Smith
Emil
Alex Jackson
Martin Davis

  1. Postgres JSON-gegevenstype Rails-query

  2. Top 18 gratis en veelgebruikte, open source NoSQL-databases

  3. Lijst met territoria die worden ondersteund door Oracle Database

  4. Oracle Database Explorer:gratis training en accreditatie