以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 如何用SQL语句实现垂直表和水平表的转换灵活操作 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=143701)
|
-- 作者:lgz518
-- 发布时间:2019/12/2 11:49:00
-- 如何用SQL语句实现垂直表和水平表的转换灵活操作
如何用SQL语句实现垂直表和水平表的转换灵活操作
1.实例下面还为很代码,不在这里体现;这里SQL把“课程”写死,不利扩展,比如用户再新一个课程,就是改一次。
2.对上面问题SQL语句实现垂直表和水平表的转换是否有灵活,也就不管用户,增加多少课程,都可以一条语句,不用再修改。那要如何实现 代码要怎么改,谢谢
|
-- 作者:lgz518
-- 发布时间:2019/12/2 11:50:00
--
垂直表和水平表的转换 在一些场合,可能需要对表的结构进行横竖转换。 示例一 假定表A的结构如下: 希望将其转换为表B,结构为:
|
-- 作者:lgz518
-- 发布时间:2019/12/2 11:54:00
--
此主题相关图片如下:捕获.png
|
-- 作者:有点蓝
-- 发布时间:2019/12/2 12:01:00
--
没有其他办法,只能写死。或者根据课程的动态合成需要的sql
|
-- 作者:lgz518
-- 发布时间:2019/12/2 14:29:00
--
那如何实现根据课程的动态合成需要的sql,谢谢
|
-- 作者:有点蓝
-- 发布时间:2019/12/2 14:45:00
--
类似
dim sql as string = "Select 姓名,"dim arr() as string = {"语文","数学"} for each s as string in arr sql = sql & "Sum(iif(课程 = \'" & s & "\',分数,0)) As " & s & "," next sql = sql.trim(",") & " From {学生成绩} Group by 姓名"
|