在PostgreSQL中创建数据库视图并同时更改记录值

时间:2016-09-28 11:34:15

标签: postgresql view

简而言之,是否可以在postgres中创建数据库视图,同时更改特定列的记录值?

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

我想重命名视图中包含的记录,除了' Category_1'之外还有不同的标题。或者' Category_2',让我们说' Category_3'。事实上,正如我在纪念品中提到的那样,' Category_3'是一个涉及其他两个的超类别。所以我只想要具有这些值的行。 CASE声明可以吗?

1 个答案:

答案 0 :(得分: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