sqlServer 数据库纵横表相互转化 一.纵表转横表: 1.纵表: 2.横表: 3. 代码: select Name as '姓名', end) as '语文', end) as '数学', end) as '英语' from Score group by Name 二.横表转纵表: 1.横表: 2.竖表: 3.代码: select * from( select Name as '姓名','语文' as '语文',Chinise as '分数' from Score1 union all
竖表转横表 竖表结构: Name Course Grade 张三 语文 75 张三 数学 80 张三 英语 90 李四 语文 95 李四 数学 55 转换后横表结构: Name 语文 数学 英语 张三 75 80 90 李四 95 55 0 SQL语句: select Name, end) as 语文, end) as 数学, end) as 英语 from TableA group by Name 竖表转横表 横表转竖表 横表结构: ID Name Chinese Math English 1
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 usern
纵表格式如图所示: 查询sql语句如下: ),content)content,Date from SummerChina ' 变成横表如图所示: 纵表变横表sql语句如下: select Time, max(case Date when 'Morning' then content else null end) as Morning, max(case Date when 'Afternoon' then content else null end)as Afternoon ),content)
1,纵表转横表 纵表结构 Table_A: 转换后的结构: 纵表转横表的SQL示例: SELECT Name , SUM(CASE WHEN Course = N'语文' THEN Grade ELSE 0 END) AS Chinese , SUM(CASE WHEN Course = N'数学' THEN Grade ELSE 0 END) AS Math
1.数据准备 create table Vertical( Id int , ProjectName varchar(20), ProjectValue int ) insert into Vertical values (101,'旅游',100)insert into Vertical values (101,'牧业',101)insert into Vertical values (101,'工业',102)insert into Vertical values
现有数据如下: Sql: select a.MODELID, max( case a.PNAME when'计划开始' then a.PVALUE end) as RStart, max( case a.PNAME when '计划结束' then a.PVALUE end) as Rend from TB_CONSTRUCTION_PROPERTY as a group by a.MODELID 结果:
) set @sql='select t3.BID,t5.UnitName,Sort,UnitTypeSort' select @sql=@sql+' , max(case t4.id when '''+ ID +''' then t3.Num else 0 end) ['+ Name +']' ') as a set @sql=@sql+' from DS_HZ_ResourceType t3 inner join Per_Dictionary t4 on t3.RID=t4.id left
表名:sales SELECT NAME, sum( CASE MONTH WHEN '一月份' THEN money ELSE END ) AS '一月份', sum( CASE MONTH WHEN '二月份' THEN money ELSE END ) AS '二月份', sum( CASE MONTH WHEN '三月份' THEN money ELSE END ) AS '三月份' FROM sales GROUP BY NAME; 结果:
#创建表user_score create table user_score ( name varchar(20), subjects varchar(20), score int ); insert into user_score(name,subjects,score) values('张三','语文',60); insert into user_score(name,subjects,score) values('张三','数学',70); insert into user_score(n
/* 在实际使用sql工作中总会碰到将某一列的值放到标题中显示.就是总说的行列转换或者互换. 比如有如下数据: ID NAME KECHENG CHENGJI -- ---------- -------------------- ------- 1 a 语文 80 2 a 数学 70 3 b 语文 40 4 b 数学 100 5 c 语文 90 6 c 数学 92 那末我要求显示的结果是: NAME YUWEN SHUXUE ---------- ---------------------- -
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ 1 base code use master drop database helloworld --创建一个数据库 create database helloworld --用helloworld1这个数据库 use helloworld --创建一个表格teacher create table