sql >> Databáze >  >> RDS >> Database

Jak zřetězit řetězce v SQL

Problém:

Chcete spojit řetězce ze dvou sloupců tabulky do jednoho.

Příklad:

Naše databáze obsahuje tabulku s názvem student s údaji v následujících sloupcích:id , first_name a last_name .

id first_name last_name
1 Lora Smith
2 Emil Hnědá
3 Alex Jackson
4 Martin Davis

Připojte křestní jméno k příjmení studenta v jednom řetězci. Mezi jednotlivými názvy použijte mezeru.

Řešení:

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

Tento dotaz vrací záznamy v jednom sloupci s názvem full_name :

celé_jméno
Lora Smith
Emil Brown
Alex Jackson
Martin Davis

Diskuse:

Chcete-li připojit řetězec k jinému a vrátit jeden výsledek, použijte || operátor. To sečte dva řetězce zleva a zprava dohromady a vrátí jeden výsledek. Pokud použijete název sloupce, neuzavírejte jej do uvozovek. Při použití řetězcové hodnoty jako mezery nebo textu ji však uzavřete do uvozovek.

V našem příkladu jsme do first_name přidali mezeru a poté sloupec last_name . Tento nový sloupec se nazývá full_name .

Můžete také použít speciální funkci:CONCAT. Ke spojení jako argumentů je zapotřebí seznam řetězců nebo názvů sloupců:

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

Výsledky jsou totožné.

Funkce CONCAT() je však lepší pro načítání dat ze sloupce s hodnotami NULL. Proč? Protože když je v hodnotách, které mají být spojeny, zahrnuta hodnota NULL, operátor jako výsledek vrátí hodnotu NULL. V případě CONCAT() se NULL nezobrazí.

Podívejte se na výsledek || operátor, pokud Emill nemá zaznamenané příjmení:

SELECT first_name || ‘ ‘ || last_name AS full_name
FROM student;
celé_jméno
Lora Smith
NULL
Alex Jackson
Martin Davis

Podívejte se na funkci CONCAT pro stejná data:

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

  1. Maximální velikosti úložiště TINYTEXT, TEXT, MEDIUMTEXT a LONGTEXT

  2. Jak získat maximální a minimální hodnoty z tabulky pomocí agregační funkce - SQL Server / TSQL výukový program, část 129

  3. Správa vysoké dostupnosti v PostgreSQL – Část II:Správce replikací

  4. Začínáme s GearHost pro vývoj databáze SQL Server