Catégories :

Fonctions de chaîne et fonctions binaires (général)

CONCAT_WS

Concatène deux chaînes ou plus, ou concatène deux ou plusieurs valeurs binaires, et utilise le premier argument comme délimiteur entre les chaînes suivantes.

Note

Contrairement à certaines implémentations de la fonction CONCAT_WS, la fonction CONCAT_WS Snowflake n’ignore pas les valeurs NULL.

Voir aussi :

CONCAT

Syntaxe

CONCAT_WS( <separator> , <expression> [ , <expression> ... ] )
Copy

Arguments

separator

Le séparateur doit répondre aux mêmes exigences que expression.

expression

Les expressions d’entrée doivent toutes être des chaînes, ou toutes des valeurs binaires.

Renvoie

La fonction renvoie une valeur VARCHAR ou BINARY qui contient les arguments 2 à N, séparés par le premier argument.

Si l’un des arguments est NULL, la fonction renvoie NULL.

Le type de données de la valeur renvoyée est identique à celui des valeurs d’entrée.

Notes sur l’utilisation

  • Les fonctions de métadonnées telles que GET_DDL n’acceptent que les constantes en entrée. L’entrée concaténée génère une erreur.

  • CONCAT_WS place des séparateurs entre les arguments, pas après le dernier argument. Si CONCAT_WS est appelé avec un seul argument après le séparateur, aucun séparateur n’est ajouté.

Détails du classement

Exemples

Appelez la fonction CONCAT_WS pour concaténer trois chaînes avec un séparateur de virgule :

SELECT CONCAT_WS(',', 'one', 'two', 'three');
Copy
+---------------------------------------+
| CONCAT_WS(',', 'ONE', 'TWO', 'THREE') |
|---------------------------------------|
| one,two,three                         |
+---------------------------------------+

L’exemple suivant montre que si un argument est NULL, la fonction renvoie NULL :

SELECT CONCAT_WS(',', 'one', NULL, 'two');
Copy
+------------------------------------+
| CONCAT_WS(',', 'ONE', NULL, 'TWO') |
|------------------------------------|
| NULL                               |
+------------------------------------+

L’exemple suivant montre que lorsqu’il n’y a qu’une seule chaîne à concaténer, la fonction CONCAT_WS n’ajoute pas de séparateur :

SELECT CONCAT_WS(',', 'one');
Copy
+-----------------------+
| CONCAT_WS(',', 'ONE') |
|-----------------------|
| one                   |
+-----------------------+