[No0000128]SQL纵表与横表互转
1.纵表转横表:
纵表结构:Table1

转换后的横表结构:

Sql示例代码:
select username,
sum(case Course when '语文' then Grade else 0 end) as 语文,
sum(case Course when '数学' then Grade else 0 end) as 数学,
sum(case Course when '英语' then Grade else 0 end) as 英语
from Table1
group by username
2、横表转纵表:
横表结构: TableA
|
ID |
姓名 |
语文 |
数学 |
英语 |
|
张三 |
||||
|
李四 |
||||
|
王五 |
转换后的纵表结构:
|
ID |
姓名 |
科目 |
成绩 |
|
张三 |
语文 |
||
|
张三 |
数学 |
||
|
张三 |
英语 |
||
|
李四 |
语文 |
||
|
李四 |
数学 |
||
|
李四 |
英语 |
||
|
王五 |
语文 |
||
|
王五 |
数学 |
||
|
王五 |
英语 |
SQL示例代码:
SELECT 姓名,'语文' AS 科目,语文 AS 成绩 FROM TableA UNION ALL
SELECT 姓名,'数学' AS 科目,数学 AS 成绩 FROM TableA UNION ALL
SELECT 姓名,'英语' AS 科目,英语 AS 成绩 FROM TableA ORDER BY 姓名,科目 DESC;
case 变量表达式 --对某个'变量表达式'进行判断
when 值 --当'变量表达式'是某个'值'时
then 返回值表达式 --返回'返回值表达式'值
[when...then........] --可以进行多次判断
[else 其他情况返回值表达式] --不符合所有when后面的就是其他情况了
end --结束
[No0000128]SQL纵表与横表互转的更多相关文章
- 纵表、横表互转的SQL
纵表.横表互转的SQL By:大志若愚 1.建表: 纵表结构 Table_A create table Table_A ( 姓名 ), 课程 ), 成绩 int ) ) ) ) ) ) 姓名 课程 ...
- 【转】纵表、横表互转的SQL
纵表.横表互转的SQL 原文1:http://takkymj.iteye.com/blog/751401 横表就是普通的建表方式,如一个表结构为: 主键.字段1.字段2.字段3... 如果变成纵表 ...
- SQL Server之纵表与横表互转
1,纵表转横表 纵表结构 Table_A: 转换后的结构: 纵表转横表的SQL示例: SELECT Name , SUM(CASE WHEN Course = N'语文' THEN G ...
- sql 语句纵表变横表
现把转换方法列举如下: 1.纵表转横表: 纵表结构 TableA Name Course Grade 张三 语文 75 张三 数学 80 张三 英语 90 李四 语文 95 李四 数学 55 横表结构 ...
- SQL竖表转横表 / 横表转竖表
竖表转横表 竖表结构: Name Course Grade 张三 语文 75 张三 数学 80 张三 英语 90 李四 语文 95 李四 数学 55 转换后横表结构: Name 语文 数学 英语 张三 ...
- sql中纵表变横表
纵表格式如图所示: 查询sql语句如下: ),content)content,Date from SummerChina ' 变成横表如图所示: 纵表变横表sql语句如下: select Time, ...
- SQL竖表转横表Json数据
1.数据准备 create table Vertical( Id int , ProjectName varchar(20), ProjectValue int ) insert into ...
- SQL SERVER 竖表变成横表
现有数据如下: Sql: select a.MODELID, max( case a.PNAME when'计划开始' then a.PVALUE end) as RStart, max( case ...
- Sql 竖表转横表
) set @sql='select t3.BID,t5.UnitName,Sort,UnitTypeSort' select @sql=@sql+' , max(case t4.id when '' ...
随机推荐
- producter-consumer 他山之石
#include <pthread.h> #include <list> using namespace std; template <typename T> cl ...
- C语言判断文件夹或者文件是否存在的方法【转】
C语言判断文件夹或者文件是否存在的方法 方法一:access函数判断文件夹或者文件是否存在 函数原型: int access(const char *filename, int mode); 所 ...
- 10.1.翻译系列:EF 6中的实体映射【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/configure-entity-mappings-using-fluent-api.a ...
- 在 word 中对正文和目录进行分节显示页码
使用版本 word 2016 使目录独占一页:在正文第一页的第一个字符前插入分节符下一页(布局--分节符--下一页),此时会在正文第一个字符前插入分节符.在之前插入一张空白页,用于插入目录.(插入 - ...
- 为OLED屏添加GUI支持6:进度条控件
为OLED屏添加GUI支持6:进度条控件 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN10 开发环境:MDK5.13 MCU:S ...
- ECMAScript 6 入门之新的数据类型Symbol
1.Symbol,一个每次创建都不一样的值 Symbol undefined null Boolean String Number Object let c=Symbol("这是一个Symb ...
- vue弹框,删除元素
1.效果 2.index.html <!DOCTYPE html> <html lang="en"> <head> <meta chars ...
- 修改/dev/shm的大小
修改/dev/shm的大小 修改/etc/fstab的这行: 默认的:tmpfs /dev/shm tmpfs defaults 0 0改成:tmpfs /dev/shm tmpfs defaults ...
- Vue+element组合el-table-column表头宽度自定义
[本文出自天外归云的博客园] 需求 1. 某列表头文字内容过长,要对每列表头自定义宽度 2. 表格row的每一column文字不换行,超过列宽则省略,mouseover有提示 3. 对于label做滤 ...
- Node入门教程(8)第六章:path 模块详解
path 模块详解 path 模块提供了一些工具函数,用于处理文件与目录的路径.由于windows和其他系统之间路径不统一,path模块还专门做了相关处理,屏蔽了彼此之间的差异. 可移植操作系统接口( ...