From: | Jaime Soler <jaime(dot)soler(at)gmail(dot)com> |
---|---|
To: | Emanuel Calvo <3manuek(at)gmail(dot)com> |
Cc: | Juan Francisco Giménez Silva <juanfgs(at)openmailbox(dot)org>, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Ayuda de IF() de MySQL a CASE en PostgreSQL |
Date: | 2017-02-20 14:33:10 |
Message-ID: | CAKVUGgSg-4hNvyatktZZzrkZeR=Tx1jveoik1twRcRA4Of5zpQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Para migrar base de datos de mysql/oracle a postgresql te aconsejo revises
la aplicación ora2pg. En el caso de los IF dentro de pl, la solución que
implementan es:
https://github.com/darold/ora2pg/blob/master/lib/Ora2Pg/PLSQL.pm#L1634
$str =~ s/\bIF\(\s*([^,]+)\s*,\s*([^,]+)\s*,\s*([^\)]+\s*)\)/(CASE WHEN $1
THEN $2 ELSE $3 END)/igs;
Para poderte ayudar más con tu error concreto, necesaría ver cuál es la
consulta que quieres migrar y parte de la definición de las tablas/vistas
relacionadas.
El 21 de noviembre de 2016, 20:05, Emanuel Calvo <3manuek(at)gmail(dot)com>
escribió:
> Algo escribí hace un tiempo acerca de iif en postgres:
> https://wiki.postgresql.org/wiki/Simulating_iif_function.
>
> Con respecto al GROUP BY, si, tienes que ser explícito en el orden que
> quieres que se agrupen todas las columnas.
>
> El día 18 de noviembre de 2016, 11:41, Juan Francisco Giménez Silva
> <juanfgs(at)openmailbox(dot)org> escribió:
> > Hola,
> >
> > Estoy migrando los modelos de un software propietario que esta en MySQL
> > a PostgreSQL. Me he topado con un pequeño problema, en el que se esta
> > utilizando la función IF de MySQL de la siguiente manera
> > IF(condicion,resultado1,resultado2) lo cual he transcripto a
> >
> >
> > CASE
> > WHEN '' = wc."title"
> > THEN
> > TRIM( c."name" )
> > ELSE wc."title"
> > END AS title
> >
> > El problema es que me da el siguiente error:
> >
> > column "wc.title" must appear in the GROUP BY clause or be used in an
> > aggregate function
> >
> > Si añado esa columna a GROUP BY me empieza a pedir sucesivamente que
> > añada wc.content y otras columnas de la tabla, por lo cual deduzco que
> > me debo estar equivocando en algo más.
> >
> > Agradecería si me pueden ayudar un poco con esto.
> >
> >
> > Saludos!!
> >
> > -
> > Enviado a la lista de correo pgsql-es-ayuda (
> pgsql-es-ayuda(at)postgresql(dot)org)
> > Para cambiar tu suscripción:
> > http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
>
>
> --
> --
> Emanuel Calvo
> Sr. Technical Services at Percona
> Team Building at Ayres.io
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>
From | Date | Subject | |
---|---|---|---|
Next Message | Carlos Enrique Perez | 2017-02-20 14:47:25 | Re: Ayuda de IF() de MySQL a CASE en PostgreSQL |
Previous Message | Jaime Soler | 2017-02-20 14:18:43 | Re: Consulta de Replicacion |