J'ai ceci dans une requête SELECT:
string_agg(CAST('(' || item.name || ', price:' || item.price || ')' AS text), ' ') as item_price,
3 Réponses :
Utiliser Vous devrez peut-être lancer sur une chaîne, en fonction du type: p> coalesce () code>:
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,
La fonction SQL 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,
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