我有一张patient_visit_codes桌子上的字段:pat_id, visit_id, visit_date, visit_code, create_timestamp.每个患者可以在每个访问日期拥有无限的访问代码.每个visit_code都列在一个单独的行中.我想visit_code在单独的列中将前4个创建成一行.
所以如果我的表有以下数据:
;WITH patient_visit_codes AS (
SELECT * FROM (VALUES
(1, 'B58B3850-43BB-434D-B1EA-B968A01332EA', '2015-12-22', '3018F', '2015-12-22 07:24:07.403'),
(1, 'B58B3850-43BB-434D-B1EA-B968A01332EA', '2015-12-22', '1101F', '2015-12-22 07:28:09.440'),
(56, '482A73F8-EA3F-4CD6-B1AD-BD2388EC5912', '2016-01-05', 'I50', '2016-01-05 11:05:34.830'),
(56, '482A73F8-EA3F-4CD6-B1AD-BD2388EC5912', '2016-01-05', 'R50.90', '2016-01-05 11:35:14.560'),
(56, '482A73F8-EA3F-4CD6-B1AD-BD2388EC5912', '2016-01-05', 'Z02.89', '2016-01-05 11:40:24.740')
) as t (pat_id, visit_id, visit_date, visit_code, create_timestamp))
Run Code Online (Sandbox Code Playgroud)
我希望得到如下结果:
pat_id | visit_id | visit_code1 | visit_code2 | visit_code3 | visit_code4
1 | B58B3850-43BB-434D-B1EA-B968A01332EA | 3018F | 1101F | …Run Code Online (Sandbox Code Playgroud)