[英]Combine three columns in to one
我有以下sql語句:
SELECT p.id, p.first_name, p.last_name, a.admitted_at,
a.discharged_at, c.name as client_name, p.receive_reminders,
p.opt_in_to_receive_reminders, u.phone_number, p.status,
c.id as client_id, p.mrn
FROM patients p
LEFT JOIN admissions a ON p.last_admission_id = a.id
INNER JOIN facilities f ON f.id = p.facility_id
INNER JOIN clients c ON c.id = f.client_id
LEFT OUTER JOIN users u ON p.user_id = u.id;
我有三列:
p.opt_in_to_receive_reminders - boolean
u.phone_number - string
p.receive_reminders - boolean
我想將這3列的結果合並到一個虛擬列messaging
。 例如,如果p.opt_in_to_receive_reminders
為true,並且u.phone_number
不為空,並且p.receive_reminders
為true,則此列將為true,在其他情況下它將返回false。
如何在PostgreSQL中做到這一點?
只需寫下:
p.opt_in_to_receive_reminders為true,並且如果u.phone_number不為空且p.receive_reminders為true
如
select p.opt_in_to_receive_reminders and u.phone_number is not null and p.receive_reminders
-- or
select p.opt_in_to_receive_reminders and u.phone_number <> '' and p.receive_reminders
-- or
select p.opt_in_to_receive_reminders and coalesce(u.phone_number, '') is null and p.receive_reminders
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.