簡體   English   中英

將三列合並為一個

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM