Concat

Stel dat je het employee_id, de volledige naam en het e-mailadres wil laten zien van de personeelsleden.

 

SELECT employee_id, first_name, last_name, email

FROM employees;

 

clip0007

 

In dit geval krijg je twee aparte kolommen bij de naam. Eentje voor de voornaam en eentje voor de achternaam. Je kunt die twee kolommen tonen in één kolom met de CONCAT opdracht. Je plakt als het ware de voornaam vast aan de achternaam.

 

SELECT employee_id, CONCAT(first_name, last_name), email

FROM employees;

 

clip0008

 

Nu wil je uiteraard nog een spatie hebben tussen de voornaam en de achternaam. Dat doe je door een spatie te plaatsen tussen enkele aanhalingstekens tussen first_name en last_name.

 

SELECT employee_id, CONCAT(first_name, ' ', last_name), email

FROM employees;

 

clip0006

 

 

Of de dubbele aanhalingstekens dus, want dat werkt ook.

 

SELECT employee_id, CONCAT(first_name, " ", last_name), email

FROM employees;

 

 

Je ziet dat de tweede kolom de naam krijgt van de concatenatie. Het is daarom wel zo netjes de kolomnaam aan te passen.

 

SELECT employee_id nummer, CONCAT(first_name, ' ', last_name) AS naam, email

FROM employees;

 

clip0041

 

 

Het is mogelijk zinnen te genereren met concatenatie en het gebruik van aanhalingstekens.

 

SELECT CONCAT(last_name, ' verdient ', salary, ' dollar per maand.') AS 'maandsalaris_per_werknemer'

FROM employees;

 

clip0011

 

 

Het is ook mogelijk de concatenatie functie te gebruiken met behulp van pipelines, ook wel verticale streepjes staafjes of sluistekens genoemd. De pipeline zit op je toetsenbord boven de backslash. Je kunt het teken dus maken door Shift ingedrukt te houden en dan op \ te drukken. Om te concateneren gebruik je een dubbele pipeline.

 

SELECT first_name||' '||last_name AS naam

FROM employees;

 

 

Als je niet de namen krijgt maar een kolom met allemaal nullen, dan staat PIPES_AS_CONCAT niet aan in de sql_mode. Je kunt het dan voor een sessie aanzetten met een SET SESSION zoals in onderstaand voorbeeld.

 

SET SESSION sql_mode = 'PIPES_AS_CONCAT';

SELECT first_name||' '||last_name AS naam

FROM employees;

 

clip0042

 

Let op!

Er staat een punt-komma na het SET SESSION commando op het eind van de eerste regel! Dat statement wordt eerst uitgevoerd en daarna volgt het volgende statement. Je moet ze scheiden met een punt-komma.

 

In het vervolg van de cursus zullen we niet meer werken met het pipeline teken maar enkel met het CONCAT commando.