在PostgreSQL中从数组转换值

在PostgreSQL中从数组转换值,sql,postgresql,Sql,Postgresql,在我的PostgreSQL数据库中,我有以下模式: CREATE TABLE slide_results ( id integer NOT NULL, tags character varying[] DEFAULT '{}'::character varying[] ); INSERT INTO slide_results (id, tags) VALUES (1, '{Food, Housing}'); INSERT INTO slide_results (id,

在我的PostgreSQL数据库中,我有以下模式:

CREATE TABLE slide_results (
    id integer NOT NULL,
    tags character varying[] DEFAULT '{}'::character varying[]
);

INSERT INTO slide_results (id, tags)
    VALUES (1, '{Food, Housing}');

INSERT INTO slide_results (id, tags)
    VALUES (2, '{Security, Transport}');
现在我想让sql查询返回一个额外的列,这个列名是
domain\u name
。此列的值取决于
标记的内容。如果
标签
列具有
食品
值,则
域名
应为
我需要食品帮助
,如果标签包括
运输
域名
将具有
需要的运输帮助
。所以查询的结果应该是

id             | domain_name
1              | I need food help
2              | Transport help needed
如何在PostgreSQL中执行类似操作

下面是sql FIDLE与db模式:


似乎您需要一个表来将
标记
转换为
域名
,例如

create table tag_domain(tag text, domain_name text);
insert into tag_domain values
('Food', 'I need food help'),
('Transport', 'Transport help needed');
并以这种方式使用它:

select * 
from slide_results s
join tag_domain t on t.tag = any(s.tags)    

select * 
from slide_results s
join tag_domain t on t.tag = any(s.tags)