Обсуждение: please help with converting a view in oracle into postgresql readably code
please help with converting a view in oracle into postgresql readably code
От
"Matthew Geddert"
Дата:
Hello, I am trying to convert an application to postgresql, and am having a bear of a time converting the following view (from oracle). What it does, just in case you aren't very familiar with oracle syntax, is group the average reg_state from the events_registrations table after having converted the varchar variables present in reg_state, into numbers to represent the various possibilities). Then, once it has found the average number for all items in the table events_registrations with the same order_id number it fills in a human readable word. Thanks for any help in letting me either know how to create this view, or to tell me how to convert the variables in the varchar field reg_state into the numbers I want them to represent which I will be able to manipulate with things such as floor() and avg(). Matthew Geddert ===== create or replace view events_orders_states as select o.*, o_states.order_state from events_orders o,(selectorder_id,decode (floor(avg (decode (reg_state, 'canceled', 0, 'waiting', 1, 'pending', 2, 'shipped', 3, 0))), 0, 'canceled', 1, 'incomplete', 2, 'incomplete', 3, 'fulfilled', 'void') as order_statefromevents_registrationsgroup by order_id) o_states where o_states.order_id = o.order_id;
"Matthew Geddert" <geddert@yahoo.com> writes: > create or replace view events_orders_states > as > select o.*, > o_states.order_state > from events_orders o, > (select > order_id, > decode (floor(avg (decode (reg_state, > 'canceled', 0, > 'waiting', 1, > 'pending', 2, > 'shipped', 3, > 0))), > 0, 'canceled', > 1, 'incomplete', > 2, 'incomplete', > 3, 'fulfilled', > 'void') as order_state > from events_registrations > group by order_id) o_states > where o_states.order_id = o.order_id; DECODE() is an Oracle-ism. You can use the SQL-standard CASE construct instead. See http://www.ca.postgresql.org/users-lounge/docs/7.2/postgres/functions-conditional.html Other than the DECODE() calls this should run fine in PG. regards, tom lane