近期面试遇到了一道面试题。顿时有点迷糊,仅仅说出了思路。后来百度了一下。整理了一下思路,于是记录下来,方便以后学习。(面试题请參见附件)相关的数据表:1.Score表2.[User]表SQL语句例如以下:--方法一:静态SQLSELECT * FROM(SELECT UID,Name, Score,...
转载 2016-01-15 11:42:00
431阅读
2评论
【代码】SqlServer 转列
WITH data AS ( SELECT '语文' subject_name , 90 score , '张三' student_name , '一班' class_name UNION ALL SELECT '数学' subject_name , 92 score , '张三' student_ ...
转载 2021-08-17 17:57:00
531阅读
2评论
原始数据:使用之后,张三的课程分数分布于三中,现在需要将其压平至一:使用聚合之后:最好还是加上判断下:对比下:
原创 2024-01-02 11:24:06
259阅读
环境oracle 10g工作关系,常做些转列报表,报表通常不是在大数据集合上处理.所以写了个过程.本过程比较适合在于需要动态输出报表的地方,例如web中.不是很完美,但已经可以解决绝大部分的问题.create or replace function func_RowToCol(viewName Varchar2,grpCols Varchar2,colCol Varchar2,valueCol
SQL转列是比较经典的问题:比如有如下数据表,有如下某一款号(表1): 颜色 尺码 库存 红色 S 10 红色 M 80 白色 L 50 白色 S 60要将上面的表转化为如下格式(表2):颜色 S M L红色 10 80 0白色 60 0 50动态sql:create table #tbl_0( color nvarchar(12), nsize nchar(1), store int)insert into #tbl_0select 'red', 'S', '10' union allselect 'red', 'M&
转载 2013-07-19 17:15:00
349阅读
2评论
一、使用场景 当系统中有汇总和明细的需求时,一般通过SQL来实现,汇总 就是 根据条件显示出全部的数据,明细 就是 一条汇总对应的详细信息。 转列通常用于实现明细的时候。 二、举例实现 1.当表中不存在id时: 1). 新建表student,姓名(name)、学科(subject)、成绩(scor
原创 2021-12-21 11:54:27
396阅读
给定如下模拟数据集,这也是SQL领域经典的学生成绩表问题。两张期望的数据表分别如下:1)长表:scoreLong2)宽表:scoreWide考察的问题就是通过SQL语句实现在这两种形态间转换,其中长表转为宽表即行转列,宽表转为长表即列转行。01 转列:sum+if在行转列中,经典的解决方案是条件聚合,即sum+if组合。其基本的思路是这样的:在长表的数据组织结构中,同一uid对应了多行,即每门课
转载 2023-08-04 15:07:02
237阅读
SELECT ProjectID , value = ( STUFF(( SELECT ',' + convert(varchar,ReturnRatio) FROM tb_PublicReturn WHERE ProjectID = Test.ProjectID FOR XML PATH('')
SQL
原创 2021-06-03 17:47:27
276阅读
select '2020-05','2021-05','2021-06' select '2020-05' UNION ALL select '2021-05'
sql
转载 2021-06-03 08:41:00
163阅读
2评论
ExecuteCode ContractExecuteCost1 2500.001 66000.001 13700.001 40000.001 2150.001 10000.001 6000.001 16500.001 30000.003 20000.00原始数据如上所示现在想把executecode转成列,等于1是一列,等于3是一列,写法如下select top 10 case Execute...
原创 2021-09-02 17:08:11
133阅读
用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT 的一般语法是:PIVOT(聚
SQL
转载 2021-07-28 09:32:29
200阅读
转列问题总结1、转列---1、最简单的转列/*   问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84
原创 2023-04-28 11:32:52
537阅读
转列. 要求出每个人,2007-12-01到2007-12-5每一天的成绩,
SQL
原创 2021-07-22 16:51:41
252阅读
  在做一些数据分析与数据展示时,经常会遇到转列,列转行的需求,今天就来总结下:在开始之前,先来创建一个临时表,并且写入一些测试数据:/* 第一步:创建临时表结构 */ CREATE TABLE #Student --创建临时表 ( StuName nvarchar(20), --学生名称 StuSubject nvarchar(20),--考试科目 St
转载 2023-06-06 09:38:26
705阅读
一.背景(Contexts)  其实行转列并不是一个什么新鲜的话题了,甚至已经被大家说到烂了,网上的很多例子多多少少都有些问题,所以我希望能让大家快速的看到执行的效果,所以在动态列的基础上再把表、分组字段、转列字段、值这四个转列固定需要的值变成真正意义的参数化,大家只需要根据自己的环境,设置参数值,马上就能看到效果了。转列的效果图如图1所示:(图1:转列效果图)二.实现代码(SQL Cod
转载 2023-08-22 13:45:16
572阅读
目录 一、转列1、使用case…when…then  2、使用SUM(IF()) 生成列 3、使用SUM(IF()) 生成列 + WITH ROLLUP 生成汇总行 4、使用SUM(IF()) 生成列,直接生成汇总结果,不再利用子查询 5、使用SUM(IF()) 生成列 + UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为
近一段时间一直没怎么看过sql了,突袭一下: 转列,列转行是我们在开发过程中经常碰到的问题。转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现。 用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的 SELECT...CASE 语
转载 2023-10-11 17:06:49
64阅读
前言 工作中在处理数据数据时,我们常常会遇到需要把数据库的数据进行行转列的操作,以下,记录两种方式的转列。 实现方式 在这之前需要执行以下操作,插入测试数据,方便后续举例子。 创建成绩表 创建一张成绩表,创建SQL语句如下: CREATE TABLE CJ ( Id INT PRIMARY KEY ...
转载 2021-08-09 08:57:00
288阅读
2评论
表: 表姓名属性属性值JACK身高180JACK体重80JACK年龄27TOM身高164TOM体重59TOM年龄20列表: 列表 姓名身高年龄体重JACK1802780TOM1642059转列就是将表转换为列表,反之为列转行。--==========================...
转载 2015-12-18 16:46:00
535阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5