`

一行转列sql题

    博客分类:
  • sql
SQL 
阅读更多
有样本数据abc表如下:
id       name        score
1        se          30
2        se          40
3        se          58
1        hn          65
2        hn          47
3       hn          50
想转化成如下表样式:
表名:abc
     name        score1  score2  score3 
      se            30          40          58
      hn            65          47         50


sql1
select b.name,sum(b.score1) score1,sum(b.score2) score2,sum(b.score3) score3
from (
    select a.name,
    case when id=1 then score else 0 end score1,
    case when id=2 then score else 0 end score2,
    case when id=3 then score else 0 end score3
    from abc a
    ) b
group by b.name

sql2:
select name, 
sum(case when id=1 then score else 0 end) score1,
sum(case when id=2 then score else 0 end) score2,
sum(case when id=3 then score else 0 end) score3 
from abc 
group by name

select a.name,a.score,a1.score,a2.score
from 
abc a,abc a1,abc a2
where 
a.name=a1.name and a.id =1 and 
a.name=a2.name
and a1.id = 2 and a2.id=3
分享到:
评论

相关推荐

    sql试题及答案,sql 行列转换,sql存储过程实例

    3. **UNION ALL或UNION**:结合多个SELECT语句,将不同列的数据合并成一行。 4. **CROSS APPLY或OUTER APPLY**:在某些SQL版本中,可以使用这些运算符配合子查询进行行列转换。 三、SQL 存储过程实例 存储过程是预...

    SQL试题16套(全部有准确答案,有上百页)

    这将把满足条件的行的column列更新为value。要注意的是,没有WHERE子句将更新表中所有行。 在SQL中,INSERT语句用于向表中插入新记录,如:INSERT INTO 表名 (column1, column2) VALUES (value1, value2); 而...

    考试必备SQL试题

    3. 主键是表中的一个或多个列,具有唯一标识的功能,外键是表中的一个或多个列,匹配其他表中的逐渐,选项 C 正确。 4. 员工和部门是两个需要存储数据的对象,可以被称为实体,选项 C 正确。 5. 逆规范化是指...

    SQL精选面试题

    游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。 六、数据库对象 数据库对象包括表格、视图、用户定义的函数、存储过程、触发器等。 七、NULL值 NULL 这个值表示 UNKNOWN(未知):它不表示“(空...

    SQL习题

    在IT行业中,SQL(Structured Query Language)是一种极为重要的数据库查询语言,被广泛应用于各种数据库管理系统中,如MySQL、Oracle、Microsoft SQL Server等。通过SQL,数据分析师、开发人员以及数据库管理员能够...

    sql试 题答案和试题

    - **解析**:关系模型的基本特点是使用二维表格结构来组织数据,表格中的每一行代表一个实体,每一列代表一个属性。在关系数据库中不允许出现重复的行,即每一行都是唯一的。 2. **SQL Server的身份验证方式** -...

    sql面试题(适合软件测试)

    要求将表转换为特定格式,每一行表示一年,列则表示不同的月份及其对应的金额。 **样例数据**: | year | month | amount | |------|-------|--------| | 1991 | 1 | 1.1 | | 1991 | 2 | 1.2 | | 1991 | 3 | 1.3 | ...

    niit sql 课后习题与答案(全)

    可以一次性插入一行或多行数据,具体取决于提供的值。 4. **更新数据**:UPDATE语句用于修改已存在的记录。需要指定要更新的表,更新的字段,以及这些字段的新值。WHERE子句同样用于指定要更新的记录。 5. **删除...

    SQLServer行转列实现思路记录

    在SQLServer中,行转列是一种常见的数据转换需求,它能将数据库中的一行数据转换为多列显示,尤其在数据分析和报表展示时非常有用。本文主要探讨了三种实现SQLServer行转列的方法:静态SQL、动态SQL以及CASE WHEN...

    SQL Server笔试题(Sql2000常见笔试题)

    - **Primary Key**: 主键,用于唯一标识表中每一行的字段,不允许有重复值。 - **Identity**: 标识列,自动递增的数值类型字段,通常用作主键。 - **Foreign Key**: 外键,用于建立两个表之间的关联,引用另一个...

    SQLServer高频面试题及答案

    SQL Server高频面试题及答案 数据库基础知识篇 1. 主键、外键、超键、候选键 超键是关系模式中能唯一标识元组的属性集。候选键是最小超键,即没有冗余元素的超键。主键是数据库表中对储存数据对象予以唯一和完整...

    SQL面试题(很全,带答案)

    - `EXCEPT`:返回第一个集合中存在而第二个集合中不存在的行。 - `INTERSECT`:返回两个集合的交集,即两个集合中都存在的行。 ### JOIN操作 - `LEFT OUTER JOIN`:左连接,返回左表的所有记录和右表中符合条件的...

    笔试常考SQL题汇总

    原始数据是以行的形式存储,每个学生每科的成绩占一行。静态SQL的转换是基于已知的科目(如语文、数学、物理)来构建查询。利用`CASE`语句,我们可以根据Subject字段的值将Result字段的结果分别放到对应的列上。`MAX...

    SQL考试复习题

    它是SQL中最常用的语句之一,可以用来检索满足特定条件的数据行。例如: ```sql SELECT * FROM Persons; ``` #### 3. 用于更新数据库中数据的SQL语句是什么? - **知识点解析**:`UPDATE`语句用于修改数据库中...

    SQL练习题 SQL练习题 SQL练习题

    以下是一些SQL练习题,涵盖了SELECT、INSERT、UPDATE、DELETE、JOIN、SUBQUERY、AGGREGATE、GROUP BY等语句和函数: 选择数据 从 employees 表中选择所有列: SELECT * FROM employees; 从 employees 表中选择 ...

    sqlsqlSQL面试题

    - **ROWGUIDCOL属性**:这是一种特殊的列属性,它可以自动为每行生成一个全局唯一的标识符(GUID)。 - **IDENTITY属性**:用于自动生成唯一的整数标识符,通常用于主键。 - **区别**:`ROWGUIDCOL`生成的是GUID...

    sql面试题,sql练习。

    这个查询会返回每一行中A、B、C列的最大值和次大值。 3. 要获取当天日期的记录,可以利用`DATEDIFF`函数和当前日期`GETDATE()`: ```sql SELECT * FROM tb_send WHERE DATEDIFF(dd, SendTime, GETDATE()) = 0; ```...

    sql复习选择题

    第十四部分提到了`@@ROWCOUNT`系统变量,它返回上一个影响数据行的Transact-SQL语句所影响的行数,常用于检查操作是否成功或返回了多少行数据。 以上解析涵盖了SQL复习选择题中提及的关键知识点,深入理解这些概念...

    Oracle SQL:经典练习题(附答案)

    3. **条件查询**:WHERE子句是SQL中的关键部分,用于筛选满足特定条件的行。比如,可以查询某个部门的所有员工(`WHERE DEPTNO = '某个值'`),或者查询薪水超过特定值的员工。 4. **连接查询(JOIN)**:练习题...

Global site tag (gtag.js) - Google Analytics