0
votes

Comment puis-je ajouter une valeur par défaut pour les valeurs NULL lors de l'utilisation string_agg dans SQL?

J'ai ceci dans une requête SELECT:

  string_agg(CAST('(' || item.name || ', price:' || item.price || ')' AS text), ' ') as item_price,


4 commentaires

Recherchez la fonction de coalesce pour votre base de données, comme vous le mentionnez plusieurs dans vos balises. Il renvoie la première expression non nulle, de sorte que vous puissiez faire de la regroupement (article.price, 'TBD') au lieu de l'article.price.


@Sqlraptor qui ne semble pas fonctionner avec la distribution et il semble rechercher une colonne "TBD" sur l'élément


C'est une question de caractère délimiteur de chaîne incorrect. Quel SGBD utilisez-vous?


@Sqlraptor Postgres


3 Réponses :


0
votes

Utiliser coalesce () : xxx

Vous devrez peut-être lancer sur une chaîne, en fonction du type: xxx


0 commentaires

0
votes

Vous devriez-vous la fonction de coalesce. Cela retournera «tbd» est la valeur de l'élément.price est null. Utilisez-le comme ceci:

string_agg(CAST('(' || item.name || ', price:' || COALESCE(item.price, 'TBD') || ')' AS text), ' ') as item_price,


0 commentaires

0
votes

La fonction SQL Coalesce forte> est utilisée pour gérer les valeurs NULL. Pendant le processus d'évaluation de l'expression, les valeurs NULL sont remplacées par la valeur définie par l'utilisateur.

La fonction de coalesce SQL évalue les arguments dans l'ordre et renvoie toujours la première valeur non nulle de la liste d'arguments définie. P>

Dans votre cas, l'utilisation de la fonction serait la suivante: p>

string_agg(CAST('(' || item.name || ', price:' || COALESCE(item.price, 'TBD') || ')' AS text), ' ') as item_price,


0 commentaires