From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Mauricio Cruz <cruz(at)sygecom(dot)com(dot)br> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: From with case |
Date: | 2013-03-25 14:01:09 |
Message-ID: | CAFj8pRCgqmuAD9bcty+a==EUZEFZXE9u4sJMQKvFwA4TGQDsxg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hello
> For rSql in select a.adiant,
> a.desc_per
> from case
> when cTip='P'
> then valapag
> else valerec
> end
> where cod=2 Loop
you can use a dynamic SQL, but it is not best solution usually. In
this case I usually prefer
IF cTip = 'P' THEN
FOR r IN SELECT .. FROM valapag LOOP
PERFORM proc(r);
END LOOP;
ELSE
FOR r IN SELECT .. FROM valerec LOOP
PERFORM proc(r);
END LOOP;
END IF;
with dynamic SQL
FOR r IN EXECUTE format('SELECT .. FROM %I ..', CASE WHEN ctip = 'P'
THEN 'valapag' ELSE 'valerec' END)
LOOP
..
END LOOP;
Regards
Pavel Stehule
2013/3/25 Mauricio Cruz <cruz(at)sygecom(dot)com(dot)br>:
> Hi everyone,
>
>
>
> I'm working in a PL/SQL and I'd like to use the same PL for 2 kinds of
> tables...
>
> I have "valepag" and "valerec" both tables have the same columns, but one is
> for debit and the other one is for credit, the PL will work for both cases
>
> with the unique diference for the name of the table...
>
>
>
> So I thought to use something like this:
>
> ...
>
> For rSql in select a.adiant,
> a.desc_per
> from case
> when cTip='P'
> then valapag
> else valerec
> end
> where cod=2 Loop
>
>
>
> ...
>
>
> But it just dont work... does some one have other solution for this case ?
>
>
>
> Thanks guys.
>
>
>
> --
> Grato,
> Mauricio Cruz
> Sygecom Informática
> 51 3442-3975 / 3442-2345
From | Date | Subject | |
---|---|---|---|
Next Message | Mauricio Cruz | 2013-03-25 14:38:17 | Re: From with case |
Previous Message | Mauricio Cruz | 2013-03-25 13:48:00 | From with case |