有样本数据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
分享到:
相关推荐
3. **UNION ALL或UNION**:结合多个SELECT语句,将不同列的数据合并成一行。 4. **CROSS APPLY或OUTER APPLY**:在某些SQL版本中,可以使用这些运算符配合子查询进行行列转换。 三、SQL 存储过程实例 存储过程是预...
这将把满足条件的行的column列更新为value。要注意的是,没有WHERE子句将更新表中所有行。 在SQL中,INSERT语句用于向表中插入新记录,如:INSERT INTO 表名 (column1, column2) VALUES (value1, value2); 而...
3. 主键是表中的一个或多个列,具有唯一标识的功能,外键是表中的一个或多个列,匹配其他表中的逐渐,选项 C 正确。 4. 员工和部门是两个需要存储数据的对象,可以被称为实体,选项 C 正确。 5. 逆规范化是指...
游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。 六、数据库对象 数据库对象包括表格、视图、用户定义的函数、存储过程、触发器等。 七、NULL值 NULL 这个值表示 UNKNOWN(未知):它不表示“(空...
在IT行业中,SQL(Structured Query Language)是一种极为重要的数据库查询语言,被广泛应用于各种数据库管理系统中,如MySQL、Oracle、Microsoft SQL Server等。通过SQL,数据分析师、开发人员以及数据库管理员能够...
- **解析**:关系模型的基本特点是使用二维表格结构来组织数据,表格中的每一行代表一个实体,每一列代表一个属性。在关系数据库中不允许出现重复的行,即每一行都是唯一的。 2. **SQL Server的身份验证方式** -...
要求将表转换为特定格式,每一行表示一年,列则表示不同的月份及其对应的金额。 **样例数据**: | year | month | amount | |------|-------|--------| | 1991 | 1 | 1.1 | | 1991 | 2 | 1.2 | | 1991 | 3 | 1.3 | ...
可以一次性插入一行或多行数据,具体取决于提供的值。 4. **更新数据**:UPDATE语句用于修改已存在的记录。需要指定要更新的表,更新的字段,以及这些字段的新值。WHERE子句同样用于指定要更新的记录。 5. **删除...
在SQLServer中,行转列是一种常见的数据转换需求,它能将数据库中的一行数据转换为多列显示,尤其在数据分析和报表展示时非常有用。本文主要探讨了三种实现SQLServer行转列的方法:静态SQL、动态SQL以及CASE WHEN...
- **Primary Key**: 主键,用于唯一标识表中每一行的字段,不允许有重复值。 - **Identity**: 标识列,自动递增的数值类型字段,通常用作主键。 - **Foreign Key**: 外键,用于建立两个表之间的关联,引用另一个...
SQL Server高频面试题及答案 数据库基础知识篇 1. 主键、外键、超键、候选键 超键是关系模式中能唯一标识元组的属性集。候选键是最小超键,即没有冗余元素的超键。主键是数据库表中对储存数据对象予以唯一和完整...
- `EXCEPT`:返回第一个集合中存在而第二个集合中不存在的行。 - `INTERSECT`:返回两个集合的交集,即两个集合中都存在的行。 ### JOIN操作 - `LEFT OUTER JOIN`:左连接,返回左表的所有记录和右表中符合条件的...
原始数据是以行的形式存储,每个学生每科的成绩占一行。静态SQL的转换是基于已知的科目(如语文、数学、物理)来构建查询。利用`CASE`语句,我们可以根据Subject字段的值将Result字段的结果分别放到对应的列上。`MAX...
它是SQL中最常用的语句之一,可以用来检索满足特定条件的数据行。例如: ```sql SELECT * FROM Persons; ``` #### 3. 用于更新数据库中数据的SQL语句是什么? - **知识点解析**:`UPDATE`语句用于修改数据库中...
以下是一些SQL练习题,涵盖了SELECT、INSERT、UPDATE、DELETE、JOIN、SUBQUERY、AGGREGATE、GROUP BY等语句和函数: 选择数据 从 employees 表中选择所有列: SELECT * FROM employees; 从 employees 表中选择 ...
- **ROWGUIDCOL属性**:这是一种特殊的列属性,它可以自动为每行生成一个全局唯一的标识符(GUID)。 - **IDENTITY属性**:用于自动生成唯一的整数标识符,通常用于主键。 - **区别**:`ROWGUIDCOL`生成的是GUID...
这个查询会返回每一行中A、B、C列的最大值和次大值。 3. 要获取当天日期的记录,可以利用`DATEDIFF`函数和当前日期`GETDATE()`: ```sql SELECT * FROM tb_send WHERE DATEDIFF(dd, SendTime, GETDATE()) = 0; ```...
第十四部分提到了`@@ROWCOUNT`系统变量,它返回上一个影响数据行的Transact-SQL语句所影响的行数,常用于检查操作是否成功或返回了多少行数据。 以上解析涵盖了SQL复习选择题中提及的关键知识点,深入理解这些概念...
3. **条件查询**:WHERE子句是SQL中的关键部分,用于筛选满足特定条件的行。比如,可以查询某个部门的所有员工(`WHERE DEPTNO = '某个值'`),或者查询薪水超过特定值的员工。 4. **连接查询(JOIN)**:练习题...