chadhammond01
chadhammond01

Reputation: 11

Select a column based on the value of another column

Is there a way to do this more efficiently?

select 
claim_id,
case when flex_field1_label = 'Member ID' then flex_field1_value
when flex_field2_label = 'Member ID' then flex_field2_value
when flex_field3_label = 'Member ID' then flex_field3_value
when flex_field4_label = 'Member ID' then flex_field4_value
when flex_field5_label = 'Member ID' then flex_field5_value end as "Member ID"
from claim_flexfields

Dbeaver

Upvotes: 1

Views: 262

Answers (1)

Saya
Saya

Reputation: 353

Shorter SQL would be:

    SELECT
        claim_id,
        CASE WHEN 'Member ID' IN (flex_field1_label, flex_field2_label,
        flex_field3_label, flex_field4_label, flex_field5_label) THEN 'Member ID'
        END AS "Member ID"
    FROM
        claim_flexfields;

Upvotes: 1

Related Questions