From: | Mehmet Sabri KUNT <msabrikunt(at)gmail(dot)com> |
---|---|
To: | JORGE MALDONADO <jorgemal1960(at)gmail(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Query with conditional statement |
Date: | 2023-09-14 08:11:30 |
Message-ID: | CAKrVsE_A-3Yav4mPCMSGCY6Eg6JA2cTir56a4BBBmGusdSqP8Q@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hi Jorge,
You can not use the case statement like in your code.
If you want to get a different field's value by your condition you can use
the case statement like the following examples.
select id,CASE WHEN condition1 THEN fldx1 END AS a1,CASE WHEN
condition1 THEN fldx2 END AS a2,CASE WHEN condition1 THEN fldx3 END AS
a3,CASE WHEN condition2 THEN fldy1 END AS b1,CASE WHEN condition2 THEN
fldy2 END AS b2,CASE WHEN condition2 THEN fldy3 END AS b3FROM
your_table
If you use like above, you have lots of null values.
If you don't have to use column names like a1, a2,a3, b1,b2, or b3 like in
your code, I suggest using like the following
selectid,CASE WHEN condition1 THEN fldx1 WHEN
condition2 THEN fldy1 ELSE aaa1END AS a1,CASE WHEN
condition1 THEN fldx2 WHEN condition2 THEN fldy2 ELSE
aaa2END AS a2,CASE WHEN condition1 THEN fldx3 WHEN
condition2 THEN fldy3 ELSE aaa3END AS a3FROM your_table
Shane Borden <sborden76(at)gmail(dot)com>, 14 Eyl 2023 Per, 01:43 tarihinde şunu
yazdı:
> You will need to do a CASE statement for each column. I’m not aware of
> being able to return multiple columns from one case.
>
> Shane Borden
> sborden76(at)gmail(dot)com
> Sent from my iPhone
>
> On Sep 13, 2023, at 4:23 PM, Tchouante, Merlin <mtchouan(at)umaryland(dot)edu>
> wrote:
>
>
>
> Yes, it can.
>
>
>
> *Thanks,*
>
> * -- Merlin*
>
>
>
>
>
> *Merlin D. Tchouante,* Sr. IT Enterprise Application Developer
> *Center for Information Technology Services (CITS)*
> *601 West Lombard Street*
> *Baltimore, Maryland 21201-1512*
> *mtchouan(at)umaryland(dot)edu* <mtchouan(at)umaryland(dot)edu>
> 410-706-4489 * 410-706-1500 fax
>
>
>
> *Please send Blackboard questions to the CITS support email address:*
> DL-CITSBbSupport(at)umaryland(dot)edu <dl-citsbbsupport(at)umaryland(dot)edu>
>
> *Please send Mediasite questions to the CITS support email address:*
> DL-CITSMediasiteSupport(at)umaryland(dot)edu
>
>
>
> <image001.png>
>
>
>
> *From:* JORGE MALDONADO <jorgemal1960(at)gmail(dot)com>
> *Sent:* Wednesday, September 13, 2023 1:52 PM
> *To:* pgsql-sql(at)postgresql(dot)org
> *Subject:* Query with conditional statement
>
>
>
> You don't often get email from jorgemal1960(at)gmail(dot)com(dot) Learn why this is
> important <https://aka.ms/LearnAboutSenderIdentification>
>
> *CAUTION: *This message originated from a non-UMB email system. Hover
> over any links before clicking and use caution opening attachments.
>
> Hi,
>
>
>
> Can a conditional CASE statement be part of the SELECT portion of a query?
> For example:
>
>
>
> SELECT
>
> fld1, fld2, fld3,
>
> CASE
>
> WHEN condition1 THEN fldx1 AS a1, fldx2 AS a2, fldx3 AS a3
>
> WHEN condition2 THEN fldy1 AS b1, fldy2 AS b2, fldy3 AS b3
>
> ELSE .....
>
> END,
>
> fld6, fld7
>
> FROM ......
>
> WHERE ......
>
>
>
> I ran a test and see the following:
>
> * Each WHEN only accepts 1 result and not 3 as shown in the example
>
> * The AS for the alias is not supported
>
>
>
> I need to return more than 1 field on each WHEN and also assign an ALIAS.
>
> I very much appreciate your feedback.
>
>
>
> Regards,
>
> Jorge Maldonado
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Achilleas Mantzios - cloud | 2023-09-15 10:52:52 | Regex matching where text is input and regex stored in column |
Previous Message | Shane Borden | 2023-09-13 20:39:49 | Re: Query with conditional statement |