SqlSever基础 union 将得到的横表变为纵表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SqlSever基础 union 将得到的横表变为纵表相关的知识,希望对你有一定的参考价值。

镇场诗:
———大梦谁觉,水月中建博客。百千磨难,才知世事无常。
———今持佛语,技术无量愿学。愿尽所学,铸一良心博客。
——————————————————————————————————————————

1 base code

 1 use master
 2 drop database helloworld
 3 
 4 --创建一个数据库
 5 create database helloworld
 6 
 7 --用helloworld1这个数据库
 8 use helloworld
 9 
10 --创建一个表格teacher
11 create table Teacher
12 (
13    Id int primary key identity(1,1),   
14    Name nvarchar(10),
15    Class nchar(2),
16    score varchar(5)
17 )
18 
19 create table Location
20 (
21    Class nchar(2),
22    location nvarchar(5)
23 )
24 
25 --看看 teacher这个表格有啥
26 select * from Teacher
27 select * from Location
28 
29 --向这个Teacher中插入这几行内容,这个内容我插入一遍后,简单修改,又插入一遍
30 insert into Teacher
31        values(燃灯古佛,佛家,100),
32              (释迦摩尼佛,佛家,100),
33              (弥勒佛,佛家,100),
34              (释迦摩尼佛,佛家,100),
35              (女娲娘娘,道家,100),
36              (文殊菩萨,佛家,103),
37              (普贤菩萨,佛家,102)
38 
39 --向这个Location中插入这几行内容
40 insert into Location
41         values(佛家,印度),
42               (道家,中国),
43               (基督,西方),
44               (儒家,中国)
45 
46 --查看teacher表中有什么内容
47 select * from Teacher

 

2 base code show

技术分享

 

 3 得到一个横表的查询结果

1 --得到一个横表
2 select max(score)as 最高成绩,max(len(Name)) as 名字表中最长字符数 from Teacher

 

4 show

技术分享

 

5 得到一个纵表的查询结果

1 --得到一个纵表
2 --     列中内容       列名        列中内容     列名
3 select 最高成绩 as 描述信息, max(score)as 结果from Teacher
4 union
5 select 表中最长名字 as 描述信息, max(len(Name))as 结果from Teacher

 

6 show

技术分享

 

 

——————————————————————————————————————————
博文的精髓,在技术部分,更在镇场一诗。
SqlSever是优秀的语言,值得努力学习。熟悉数据库的增删查改,写程序必备。
如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取铸成一个良心博客。
注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。








以上是关于SqlSever基础 union 将得到的横表变为纵表的主要内容,如果未能解决你的问题,请参考以下文章

SqlSever基础 union 与 union all的区别,即 重复项是否全部显示

SqlSever基础 union all 联合查询,简单的组合 两个查询结果拼在一起

SqlSever基础 union 联合查询,厉害的并集 重复项只显示一个 两个查询结果并在一起后排序

纵表与横表互转实例

SQL纵表与横表互转

纵表与横表互转实例(转)