0

新手到 postgresql 这里。在 8.3 上(不是我的选择,在不久的将来对此无能为力)。

我正在从表中选择一些“时间”文本字符串并将它们插入到视图中:

create or replace view test as (
    select 
    case 
    when desc like '%opening%' then 'opening'
    when desc like '%closing%' then 'closing'
    else n/a
    end as time_type, 
    to_timestamp(time, 'MM/DD/YYYY HH:MI:SS AM') where time_type = 'closing' as closing_time,
    to_timestamp(time, 'MM/DD/YYYY HH:MI:SS AM') where time_type = 'opening' as opening_time
  from source_table);

我得到错误:

ERROR:  syntax error at or near "as"
LINE 8: .../YYYY HH:MI:SS AM') where time_type = 'closing' as closing...

我之前使用过这种语法来创建其他视图,所以我很困惑。是因为我的 where 语句放置不正确吗?但是,如果我将它们放在 from 之后,它们将被普遍应用,不,这不是我想要的。

4

2 回答 2

1

两个表达式看起来应该是 case 语句,例如:

case
when time_type = 'closing' then
  to_timestamp(time, 'MM/DD/YYYY HH:MI:SS AM')
else null
end as closing_time
于 2013-06-01T07:53:42.277 回答
0

将两个以 to 开头的投影也转换to_timestampCASE语句。

于 2013-05-31T20:41:15.093 回答