我的后座表有以下各栏
(Id_patient,date_appointment,time_appoitment)
Exp
14,29/12/2019,09:10
19,30/12/2019,11:30
我想创建一个生成这样的结果的sql查询,我选择介于29/12/2019和01/01/2020之间的日期,以及在08:00至23:00之间的时间预约
Time_appoitment,29/12/2019,30/12/2109,31/12/2019,01/01/2020
08:00. ,Null ,null ,Null ,Null
.
.
09:10 ,14 ,Null ,Null ,Null
.
.
11:30 ,Null ,19 ,Null ,Null
.
.
23:00 ,Null ,Null ,Null ,Null
Markus Winand在这篇文章中详细说明了这个答案:Pivot Rows to Columns
要注意的段落:SQL是一种静态类型的语言:查询必须预先列出结果列。要旋转具有未知或动态属性的表,可以使用多集或文档类型(XML,JSON)在单列中表示键值存储。请参见listagg的符合标准的替代方法:文档类型。
基本上,您要问的不是SQL(作为标准)设计的。但是,某些RDBMS系统中有一种可以满足您需求的解决方案。建议您阅读有关PIVOT,CROSSTAB或类似形式的数据库文档。