Thread: Query with conditional statement
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@umaryland.edu
410-706-4489 * 410-706-1500 fax
Please send Blackboard questions to the CITS support email address: DL-CITSBbSupport@umaryland.edu
Please send Mediasite questions to the CITS support email address: DL-CITSMediasiteSupport@umaryland.edu
From: JORGE MALDONADO <jorgemal1960@gmail.com>
Sent: Wednesday, September 13, 2023 1:52 PM
To: pgsql-sql@postgresql.org
Subject: Query with conditional statement
You don't often get email from jorgemal1960@gmail.com. Learn why this is important |
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
Attachment
I need to return more than 1 field on each WHEN and also assign an ALIAS.
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 b3 FROM your_table
select id, CASE WHEN condition1 THEN fldx1 WHEN condition2 THEN fldy1 ELSE aaa1 END AS a1, CASE WHEN condition1 THEN fldx2 WHEN condition2 THEN fldy2 ELSE aaa2 END AS a2, CASE WHEN condition1 THEN fldx3 WHEN condition2 THEN fldy3 ELSE aaa3 END AS a3 FROM your_table
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 BordenOn Sep 13, 2023, at 4:23 PM, Tchouante, Merlin <mtchouan@umaryland.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@umaryland.edu
410-706-4489 * 410-706-1500 fax
Please send Blackboard questions to the CITS support email address: DL-CITSBbSupport@umaryland.edu
Please send Mediasite questions to the CITS support email address: DL-CITSMediasiteSupport@umaryland.edu
<image001.png>
From: JORGE MALDONADO <jorgemal1960@gmail.com>
Sent: Wednesday, September 13, 2023 1:52 PM
To: pgsql-sql@postgresql.org
Subject: Query with conditional statement
You don't often get email from jorgemal1960@gmail.com. Learn why this is important
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