sql - 将“Patients”表的行中的不同值作为不同的条目插入“visits”表
问题描述
我处于困境,我必须从患者表的一行中获取一些值并将它们插入到不同的表(访问)中,但每个表都作为不同的行。使用 SQL 有没有办法做到这一点?
患者表:
| Jan | Feb | March | Apr | May | June |UniqueID|
| NULL | 2018-02-01 | 2019-03-01 | NULL |2018-05-01 | NULL | 1 |
| 2019-01-01| 2019-02-01 | NULL | NULL | NULL |2018-06-01| 2 |
预期访问表:
| UniqueID | DateOfVist |
| 1 | 2018-02-01 |
| 1 | 2019-03-01 |
| 1 | 2018-05-01 |
| 2 | 2018-06-01 |
| 2 | 2019-01-01 |
| 2 | 2019-02-01 |
解决方案
我认为cross apply
几乎可以满足您的要求:
select t.uniqueid, v.dateofvisit
from t cross apply
(values (jan), (feb), (mar), (apr), (may), (jun)
) v(dateofvisit)
where v.dateofvisit is not null;
您可以添加insert into visits (uniqueid, dateofvisit)
或into visits
(分别)加载或创建visits
表。
推荐阅读
- javascript - 使用 Javascript 检查复选框
- mysql - 如何在 MySQLi 查询中使用此子查询属性?
- javascript - VBScript 在 Chrome 中不工作,但在 IE 中工作
- javascript - 我可以在任何站点中编辑文件并更新页面吗?
- javascript - 如何从 javascript 中的 json 创建动态列表?
- python - 如何用特定值仅支持一个 na 值
- c# - 来自 C# 的 Google Drive API 错误请求,但来自 Postman 的请求很好
- java - 来自 doOnError 的打印响应
- javascript - 模型视图转换后如何在 webgl 上获取被绘制对象的 2d 尺寸以进行命中测试
- pulumi - 如何在启动时运行命令?