sql面试题-----行转列

tem数据表如下图

 1 select Time as 日期,
 2 sum
 3 (
 4          case
 5      when Shengfu=‘胜‘  then 1
 6        else  0
 7       end
 8 ) as 胜,
 9 sum
10 (
11        case
12      when Shengfu=‘负‘ then 1
13         else 0
14      end
15 )  as 负
16
17  from tem
18    group by Time

执行结果如下图:

时间: 2024-10-15 12:25:05

sql面试题-----行转列的相关文章

SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段

一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL,动态列字段: 方法三:使用PIVOT关系运算符,静态列字段: 方法四:使用PIVOT关系运算符,动态列字段: 扩展阅读一:参数化表名.分组列.行转列字段.字段值: 扩展阅读二:在前面的基础上加入条件过滤: 参考文献(References) 二.背景(Contexts) 其实行转列并不是一个什么新鲜的

经典SQL问题: 行转列<转>

转 经典SQL问题: 行转列 发表于5个月前(2015-09-19 17:49)   阅读(2905) | 评论(0) 20人收藏此文章, 我要收藏 赞0 学校里面记录成绩,每个人的选课不一样,而且以后会添加课程,所以不需要把所有课程当作列.数据库grade里面数据如下图,假定每个人姓名都不一样,作为主键.本文以MySQL为基础,其他数据库会有些许语法不同. 数据库数据: 处理后效果: 下面介绍三种方法: 方法一: ? 1 2 3 4 5 SELECTDISTINCT a.name, (SELE

SQL SERVER特殊行转列案列一则

原文:SQL SERVER特殊行转列案列一则 今天有个同事找我,他说他有个需求,需要进行行转列,但是又跟一般的行转列有些区别,具体需求如下所说,需要将表1的数据转换为表2的显示格式. 我想了一下,给出了一个解决方法,具体如下所示(先给出测试数据) INSERT INTO TEST SELECT 1,    1,    '定型名称',    '预定型'           UNION ALL SELECT 1,    2,    '进布方式',    '调平'             UNION 

Sql 语句收集——行转列

SQL行转列汇总 PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2000可以用UNION来实现 完整语法:

SQL查询语句行转列横向显示

SQL查询语句行转列横向显示 2011-03-15 10:00:14|  分类: sql |  标签:resource   |举报 |字号大中小 订阅 在SQL查询语句行转列横向显示中access中没有CASE,要用IIF代替 select  iif(sex= '1 ', '男 ', '女 ')  from  tablename 示例1: select country, sum(case when type='A' then money end) as A, sum(case when type

sql中的行转列和列转行的问题

sql中的行转列和列转行的问题 这是一个常见的问题,也是一个考的问题 1.行转列的问题  简单实例 CREATE TABLE #T ( MON1 INT, MON2 INT, MON3 INT ) GO INSERT INTO #T VALUES(1,2,3) GO SELECT * FROM #T --行转列:(union all) SELECT MON1 FROM #T UNION ALL SELECT MON2 FROM #T UNION ALL SELECT MON3 FROM #T G

sql学习系列-行转列问题 动态列展示

最近在做项目的过程需要做一个比较复杂的统计报表,涉及行转列问题. 首先看看报表的格式要求: 格式中要求按照日期的查询进行动态查询列标题,以及将数据进行按照日期进行列展示. 针对此要求,可以做一个简单的例子进行说明,可以进行两个步骤的操作: (1)先构造基本的数据: (2)对构造的数据进行行转列操作. create table test1(int test1,kqrq datetime,kqsj nvarchar(30));insert into test1(zh,kqrq,kqsj) value

SQL Server 动态行转列(轉載)

一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段; 方法二:使用拼接SQL,动态列字段; 方法三:使用PIVOT关系运算符,静态列字段; 方法四:使用PIVOT关系运算符,动态列字段; 二.背景(Contexts) 其实行转列并不是一个什么新鲜的话题了,甚至已经被大家说到烂了,网上的很多例子多多少少都有些问题,所以我希望能让大家快速的看到执行的效果,所以在动态列的基础上再把

经典SQL问题: 行转列

学校里面记录成绩,每个人的选课不一样,而且以后会添加课程,所以不需要把所有课程当作列.数据库grade里面数据如下图,假定每个人姓名都不一样,作为主键.本文以MySQL为基础,其他数据库会有些许语法不同. 数据库数据: 处理后效果: 下面介绍三种方法: 方法一: SELECTDISTINCT a.name, (SELECTscoreFROMgrade bWHEREa.name=b.nameANDb.course='语文')AS'语文', (SELECTscoreFROMgrade bWHEREa