2016-09-28 52 views
0

长话短说,是否可以在postgres中创建数据库视图并同时更改特定列的记录值?创建数据库在PostgreSQL中查看并同时更改记录值

CREATE VIEW ViewOfCoupons AS 
SELECT * 
FROM Coupons 
WHERE title = 'Category_1' OR title = 'Category_2'; 

我想重命名包含在视图中的记录比“Category_1”或“Category_2”等不同的标题,让我们说“Category_3”。事实上,正如我在纪念日提到的那样,“Category_3”是一个涉及另外两个的超类。所以我只想要有这些值的行。 CASE声明有可能吗?

+0

你想只看到那些类别的行吗?或所有的行,只有“重命名”这两个类别? –

+0

是的,我只想看到具有这两个类别的行。实际上,“Category_3”是涉及这两者的超级类别。我将编辑。谢谢。 – dpesios

回答

1
CREATE VIEW ViewOfCoupons AS 
SELECT case title 
     when 'Category_1' then 'Brand new category' 
     when 'Category_2' then 'The other category' 
     else title 
     end as title, 
     ... other columns ... 
FROM Coupons 
WHERE title in ('Category_1', 'Category_2'); 

严格地说else title是没有必要的,因为WHERE条款确保没有其他值将出现在该列,但我添加此仍然为未来的变化,例如准备如果有人更改where条款但忘记更改case

+0

我认为你不需要'WHERE'子句。 – redneb

+0

@redneb:它出现在原始查询中。目前还不清楚dpesios是否只需要这些值或所有行的行。 –

+0

@a_horse_with_no_name我明白你的观点并感谢你。但是我希望获得所有类别为'Category_1'或'Category_2'的优惠券(投影所有列)并在视图中更改它。 – dpesios

相关问题