我正在将布尔值转换为文本,如下所示:
select
CASE WHEN admin IS true THEN 'Admin' END,
CASE WHEN co IS true THEN 'CO' END,
CASE WHEN corp IS true THEN 'CORP' END,
CASE WHEN grind IS true THEN 'grind' END,
CASE WHEN vendor IS true THEN 'Vendor' END,
CASE WHEN gpm IS true THEN 'GPM' END
from user_profiles where user_name = '[email protected]';
不幸的是,它返回空值。如何返回只取回具有文本的字段?
如果要将其作为单个分隔列返回,则一种方法是concat_ws()
:
select concat_ws(',',
CASE WHEN admin IS true THEN 'Admin' END,
CASE WHEN co IS true THEN 'CO' END,
CASE WHEN corp IS true THEN 'CORP' END,
CASE WHEN grind IS true THEN 'grind' END,
CASE WHEN vendor IS true THEN 'Vendor' END,
CASE WHEN gpm IS true THEN 'GPM' END
)
from user_profiles
where user_name = '[email protected]';
这会将值作为单个列返回:单个查询不能具有可变数量的列,因此单个列似乎是最佳选择。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句