Jednou z novinek ve verzi SQL Server 2017 je nasazení nové funkce CONCAT_WS. Funkce dělá to samé jako CONCAT (viz velký článek o string funkcích), ale narozdíl od ní umožňuje zadat v prvním argumentu separátor – znak, kterým jsou jednotlivé stringy odděleny. Typickým využitím funkce může být generování csv souborů.

Syntaxe

CONCAT_WS ( separátor, argument1, argument2 [, argumentN]… )

Prvním argumentem je separátor a následuje N-tý počet argumentů, které chceme pomocí funkce spojit.

Upozornění:

  • Pokud je hodnota argumentu NULL, tak CONCAT_WS hodnotu ignoruje a neodděluje ji separátorem
  • Separátor je nepovinný. Pokud jej nezadáme, tak se funkce chová stejně jako funkce CONCAT

Příklad funkce CONCAT_WS

DECLARE @String_1 as VARCHAR(20) = ‘Text’
DECLARE @String_2 as VARCHAR(20) = ‘který’
DECLARE @String_3 as VARCHAR(20) = ‘chci’
DECLARE @String_4 as VARCHAR(20) = NULL
DECLARE @String_5 as VARCHAR(20) = NULL
DECLARE @String_6 as VARCHAR(20) = NULL
DECLARE @String_7 as VARCHAR(20) = ‘spojit’

SELECT CONCAT_WS(‘;’,@String_1,@String_2,@String_3,@String_4,@String_5,@String_6,@String_7)

Výsledek

CONCAT_WS příklad

5/5 - (2 votes)

Ing. Jan Zedníček - Data & Finance

Jmenuji se Honza Zedníček a působím jako freelancer. Tuto práci dělám pro různé firmy již přes 10 let. Před tím jsem dlouhou dobu pracoval také jako BI developer, finanční controller, analytik a krátce jako finanční manažer. Vše pro společnosti z oblasti IT, bankovnictví a výroby. Po práci si rád zahraju tenis, volejbal, šachy, zajdu do posilovny a rád ochutnávám dobré rumy. Svoje znalosti a názory se snažím už několik let zapisovat na tento web, aby sloužily i někomu dalšímu - zejména studentům a zájemcům o informace z oblastí Business intelligence, korporátních financí a reportingu.

=> Přihlašte se do naší Excel facebook skupiny (1.4k+ členů), kde si pomáháme Excel CZ/SK diskuse »
=> Pokud vám článek pomohl, sdílejte ho nebo mě uveďte na vašich webových stránkách jako užitečný zdroj informací.

Leave a Reply

Your email address will not be published. Required fields are marked *