数据透视SQLite

数据透视SQLite,第1张

概述我想在一个查询中得到一张表,显示学生和他们所有科目的标记。 这是我的表结构: 表:markdetails ## studid ## ## subjectid ## ## marks ## A1 3 50 A1 4 60 A1 5 我想在一个查询中得到一张表,显示学生和他们所有科目的标记。

这是我的表结构:

表:markdetails

## studID ## ## subjectID ##  ## marks ##     A1            3                50     A1            4                60     A1            5                70     B1            3                60     B1            4                80     C1            5                95

表:学生信息

实际结构:

## studID ##  ## name ##      A1          Raam      B1          Vivek      c1          Alex

我想结果集看起来像这样:

表:学生资料

## studID ## ## name## ## subjectID_3 ## ## subjectID_4 ## ## subjectID_5 ##      A1        Raam        50                60                 70      B1        Vivek       60                80                null      c1        Alex       null              null                95

我如何在sqlite中完成这个?

首先,您需要将当前表更改为临时表:
alter table student_info rename to student_name

然后,您将要重新创建student_info:

create table student_info add column (    stuID VARCHAR(5) PRIMARY KEY,name VARCHAR(255),subjectID_3 INTEGER,subjectID_4 INTEGER,subjectID_5 INTEGER)

然后,填充student_info:

insert into student_infoselect    u.stuID,u.name,s3.marks as subjectID_3,s4.marks as subjectID_4,s5.marks as subjectID_5from    student_temp u    left outer join markdetails s3 on        u.stuID = s3.stuID        and s3.subjectID = 3    left outer join markdetails s4 on        u.stuID = s4.stuID        and s4.subjectID = 4    left outer join markdetails s5 on        u.stuID = s5.stuID        and s5.subjectID = 5

现在,只要放你的临时表:

drop table student_temp

这就是您如何快速更新您的表。

sqlite缺少一个枢纽功能,所以你可以做的最好是硬编码一些左连接。左连接将匹配其连接条件中的任何行,并从不符合第二个表的连接条件的第一个或左侧表中的任何行返回null。

总结

以上是内存溢出为你收集整理的数据透视SQLite全部内容,希望文章能够帮你解决数据透视SQLite所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1162019.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存