Reputation: 421
Hope are you doing well!..I am trying to concatenate values of case when statement based on different columns in snowflake ..Please find the block of code below
select *,
case when checkouttime is null then ',Patient is not checked out' else '' END
+ case when primarypatientinsuranceid is null then ',No insurance information' else '' END
+ case when closedby is null then ',Encounter not signed off' else '' END
+ case when billingtabcheckeddate is null then ',Billing tab is not checked' else ''
+ case when alreadyrouted is null then ',Missing slip already routed' else 'Valid Missing slip'
END as resultant
from final
I am getting the error saying " Unexpected as"
I am trying to build the resultant column output as the following
Patient is not checked out/Billing tab is not checked
Missing slip already routed
Encounter not signed off/No insurance information /Billing tab is not checked
Valid Missing slip
Thanks, Arun
Upvotes: 1
Views: 304
Reputation: 59175
A cleaner alternative that adds commas as necessary, using array_to_string(array_construct_compact())
:
with data as (
select null checkouttime
, 2 primarypatientinsuranceid
, null closedby
, 4 billingtabcheckeddate
, 5 alreadyrouted
)
select array_to_string(array_construct_compact(
iff(checkouttime is null, 'Patient is not checked out', null)
, iff(primarypatientinsuranceid is null, 'No insurance information', null)
, iff(closedby is null, 'Encounter not signed off', null)
, iff(billingtabcheckeddate is null, 'Billing tab is not checked', null)
, iff(alreadyrouted is null, 'Missing slip already routed', 'Valid Missing slip')
), ', ')
as resultant
from data
Upvotes: 1
Reputation: 1510
In Snowflake, you use "||" to concat strings, not "+":
select
case when true then ',Patient is not checked out' else '' END
|| case when false then ',No insurance information' else '' END
|| case when true then ',Encounter not signed off' else '' END
|| case when true then ',Billing tab is not checked' else '' END
|| case when false then ',Missing slip already routed' else 'Valid Missing slip' END
as resultant;
https://docs.snowflake.com/en/sql-reference/functions/concat.html
Upvotes: 1