簡體   English   中英

根據 SQL 中的條件創建另一列

[英]Create another column based on the conditions in SQL

我需要幫助來為下面的輸出創建查詢。 正如您在下面的數據集中看到的那樣,我希望將患者記錄放在一行中,並包含所有詳細信息

數據集

例如,Shahin Adam 只需要 1 個單獨的記錄,將劑量 1 和劑量 2 的詳細信息與每個劑量的日期結合起來

期望的輸出

期望的輸出

感謝您的幫助

我認為你只想要條件聚合:

select lastname, firstname,
       max(case when dosenumber = 1 then dosenumber end) as dosenumber_1,
       max(case when dosenumber = 1 then timeofevent end) as timeofevent_1,
       max(case when dosenumber = 2 then dosenumber end) as dosenumber_2,
       max(case when dosenumber = 2 then timeofevent end) as timeofevent_2
from t
group by lastname, firstname;

根據所需的輸出結果部分,只顯示 2 個名字以 A 開頭的記錄。這就是這里啟用 where 子句的原因。 如果所有患者信息都需要,則禁用 where 子句。

SELECT PatientLastName, PatientFirstName
     , MAX(CASE WHEN DoseNumber = 1 THEN DoseNumber ELSE NULL END) DoseNumber1
     , MAX(CASE WHEN DoseNumber = 1 THEN TimeOfEvent ELSE NULL END) TimeOfEvent1
     , MAX(CASE WHEN DoseNumber = 2 THEN DoseNumber ELSE NULL END) DoseNumber2
     , MAX(CASE WHEN DoseNumber = 2 THEN TimeOfEvent ELSE NULL END) TimeOfEvent2
FROM table_name
WHERE PatientFirstName like 'A%'
GROUP BY PatientLastName, PatientFirstName
ORDER BY PatientFirstName;

 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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