在选择查询中有此内容
string_agg(CAST('(' || item.name || ', price:' || item.price || ')' AS text), ' ') as item_price,
,有时价格为空,我希望它默认为'TBD'
。有没有办法做类似item.price OR "TBD"
之类的方法,或者以某种方式添加默认值而不在价格列中添加默认值?
答案 0 :(得分:0)
使用COALESCE()
:
string_agg(CAST('(' || item.name || ', price:' || COALESCE(item.price, 'TBD') || ')' AS text), ' ') as item_price,
根据类型,您可能需要转换为字符串:
string_agg(CAST('(' || item.name || ', price:' || COALESCE(item.price::text, 'TBD') || ')' AS text), ' ') as item_price,
答案 1 :(得分:0)
您应该使用COALESCE功能。这将返回'TBD'为item的值。price为NULL。像这样使用它:
string_agg(CAST('(' || item.name || ', price:' || COALESCE(item.price, 'TBD') || ')' AS text), ' ') as item_price,
答案 2 :(得分:0)
SQL Coalesce 函数用于处理NULL值。在表达式求值过程中,NULL值将替换为用户定义的值。
SQL Coalesce函数按顺序评估参数,并始终从定义的参数列表中返回第一个非空值。
在您的情况下,该函数的用法为:
string_agg(CAST('(' || item.name || ', price:' || COALESCE(item.price, 'TBD') || ')' AS text), ' ') as item_price,