SQL Server外连接、内连接、交叉连接
展望师哥他们曾经的逻辑。通过两个视图将定性和定量得分计算保存之后。再用一个视图将三个得分连到一起并进行计算。
被组长规定仅仅能用SQL语句来写,由于这样维护起来就非常方便了。
我開始先用了级联查询并计算,但是效果并不太理想。最后了解到连接查询,经过重复试验,最终有了下面成果:
<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT --总排名ROW_NUMBER() OVER(ORDER BY ISNULL((h.AdditionalResults),0) + f.TotalScores ) AS 总排名 ,--园区IDf.ObjectID AS 市直单位id,--园区名称f.Responsibility AS 开发区园区名称,--年份f.YearTime AS 年份,--定量总得分f.QuantifyScores as 定量总得分,--附加分ISNULL((h.AdditionalResults),0) AS 奖惩总得分,--最总定量+定性+附加总分ISNULL((h.AdditionalResults),0) + f.TotalScores AS 总得分
from
--汇总,通过左链接链接之后,查询以下信息,并将定性和定量总得分汇总
(SELECT --园区IDc.ObjectID,--园区名称c.Responsibility,--年份e.YearTime,--定量总得分ISNULL((c.QuantifyScores),0) AS QuantifyScores,--定性定量总得分ISNULL((e.CalculateScores),0) + ISNULL((c.QuantifyScores),0) AS TotalScoresFROM--第一层查询,查询到定性总得分当成基表(SELECT --园区IDd.DevelopmentID,--考核时间d.YearTime,--定性总得分d.CalculateScoresFROMT_DevelopmentScores d) e--和第一层并列的查询,查询到定量信息并计算出定量总分left JOIN (SELECT --园区IDa.ObjectID, --园区名称a.Responsibility,--计算并显示定量总得分ISNULL(CAST(a.score AS real), 0)*ISNULL(CAST(b.Weight AS real), 0) / 100 AS QuantifyScoresFROM T_DevelopmentQuantifyScores a,T_DevelopmentQuantifyTarget b WHERE a.TragetID = b.TragetID ) c ON e.DevelopmentID = c.ObjectID) f
--和定量定性得分汇总并列,通过左链接查询到以下附加分
LEFT JOIN
(SELECT --园区IDg.DevelopmentID,--附加分g.AdditionalResults
FROM T_DevelopmentAdditionalResults g) h ON f.ObjectID = h.DevelopmentID</span>
尝到了SQL语句中连接的甜头,于是小编在网上搜索之后并自己实践,有了以下成果:
举例介绍
以下的内容介绍将会分别用以下两个表进行试验
外连接
左连接(left join或者left outer join):
说明:以左表为基础,查询右表中全部符合条件的信息,不存在的用Null补充
<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 a LEFT JOIN dbo.TestTable2 b ON a.Hobbyid = b.Hobbyid</span>
结果例如以下:
右连接(right join或者right outer join)
说明:以右表为基础,查询左表中全部符合条件的信息,不存在的用Null补充
<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 a right JOIN dbo.TestTable2 b ON a.Hobbyid = b.Hobbyid</span>
结果例如以下:
全然连接(full join或者full outer join)
说明:将两个表中的信息都查出来,没有相应的信息,用Null补充
<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 a full JOIN dbo.TestTable2 b ON a.Hobbyid = b.Hobbyid</span>
结果例如以下:
内连接(inner join)
说明:仅仅显示符合条件的信息,条件能够是(=、<、>、<>、<=、>=、!<、!>),以下仅仅介绍条件为=的内容
<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 a inner JOIN dbo.TestTable2 b ON a.Hobbyid = b.Hobbyid</span>
结果例如以下:
交叉连接(cross join)
无条件
说明:将查到两个表中的全部数据的乘积(假设每一个表中都有3行数据,最后显示3*3=9行数据)
<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 cross JOIN dbo.TestTable2
--上面与以下的语句等价
SELECT * FROM dbo.Testtable1, dbo.TestTable2</span>
结果例如以下:
有条件
说明:将上面查到的无条件的结果依照条件进行筛选可是这里仅仅能用where表示不能用on表示
<span style="font-family:KaiTi_GB2312;font-size:18px;">--
SELECT * FROM dbo.Testtable1 a cross JOIN dbo.TestTable2 b WHERE a.Hobbyid = b.Hobbyid</span>
结果例如以下:
总结
小编将这句话送给自己以及全部的读者:
在将来的路上,了解一块东西就将它的来龙去脉缕个通,并进行总结,这样以后的路将会更加通畅!
SQL Server外连接、内连接、交叉连接相关推荐
- 数据库之SQL(基本连接,内连接,左外连接,右外连接,全外连接,交叉连接,自连接)
之前的博客内容我们分享了数据表的查询与管理,但那只是针对数据库中的一个表格进行的查询管理,现在如果我们想要同时看到两个数据表中的数据的话,那要怎么办呢?采用多连接查询的方式. SQL中有哪几种多连接的 ...
- 「数据库」Linux服务安装部署SQL Server -外网安全远程连接【端口映射】
文章目录 1. 安装sql server 2. 局域网测试连接 3. 安装cpolar内网穿透 4. 将sqlserver映射到公网 5. 公网远程连接 6.固定连接公网地址 7.使用固定公网地址连接 ...
- SQL语法 自然连接 外连接 内连接
文章目录 笛卡尔积 连接 内连接 自连接 自然连接 外连接 左外连接 右外连接 区分连接 自然连接 内连接 内连接.外连接 on 和 where 条件过滤的区别 参考链接 笛卡尔积 结果集数目为多个表 ...
- aws rds监控慢sql_在AWS RDS SQL Server中实施SSL连接
aws rds监控慢sql This article explores a method to enforce SSL for all connections in AWS RDS SQL Serve ...
- 彻底解决SQL SERVER 2008无法远程连接的问题
1.想要彻底解决SQL SERVER 2008无法远程连接的问题必须按照步骤来 一.为 SQL 启用远程连接 1. 单击"开始",依次指向"程序"." ...
- 解决SQL Server管理器无法连接远程数据库Error: 1326错误
解决SQL Server管理器无法连接远程数据库Error: 1326错误 我们在在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例 ...
- 如何解决 SQL Server 2000 中的连接问题
时,SQL Server 还将前滚已提交的事务和没有写入硬盘的更改.当恢复过程完成时,SQL Server 将在 SQL Server 错误日志文件中写入下列信息: Recovery Complete ...
- SQL SERVER 2005无法远程连接的问题
SQL SERVER 2005无法远程连接的问题 2009-11-03 16:30 连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败 ...
- 【技术贴】安装sql server 2005后不能连接服务器,没有studio express以及安
我自己重装了六次sql server 2005,算是经验人士了,网上资料一大堆,都他妈错的! 如何安装sql server 2005,安装sql server 2005后没有SQL Server ma ...
- aws rds监控慢sql_如何将AWS RDS SQL Server与AWS Glue连接
aws rds监控慢sql This article gives you an overview of configuring AWS RDS SQL Server with AWS Glue ser ...
最新文章
- sparkSQL1.1入门之二:sparkSQL执行架构
- 【CMake】CMake 引入 ( Android Studio 创建 Native C++ 工程 | C/C++ 源码编译过程 | Makefile 工具 | CMake 引入 )
- CentOS环境搭建
- 一点等于多少厘米_马桶知识介绍,你了解马桶多少
- 贾跃亭时隔四个月再发声 这次还是为了法拉第未来
- sql找出2000-3000年中的闰年。_跟飞哥学编程:SQL入门-4-查询和条件
- Caffe网络结构实现
- 小宇飞刀与xieyunc
- 分子动力学模拟算法框架
- linux中ps-p,linux下ps命令
- 基于 Python 与 mxget 的音乐下载器
- 网站换服务器会降权,网站更换IP地址,对SEO有什么影响?
- python由编译器将源程序转化为机器语言、然后执行_高级语言程序设计(Python)-中国大学mooc-车万翔-车万翔...
- OpenAI发布DALL·E 2
- python怎么算列表的平方_Python中排序形式的元素的平方列表
- 拳皇世界服务器维护,拳皇世界3月1日更新维护公告 多组服务器开启数据互通[图]...
- Java打造RPC框架(四):支持zookeeper与负载均衡
- 用Markdown来创建待办事项
- 根据身份证号码(15位或者18位)自动获取出生日期及性别
- hiho#1082 然而沼跃鱼早就看穿了一切
热门文章
- 【AtCoder】AGC009
- 299 Bulls and Cows 猜数字游戏
- 用WebCollector制作一个爬取《知乎》并进行问题精准抽取的爬虫(JAVA)
- 递归获取字符串内的所有图片src地址
- 英语学习过程中的几点体会(2)
- 使用idea工具运行第一个spring boot项目
- Android学习之android源码的导入
- java Runtime类
- 如何计算机操作维护培训,电脑基本操作培训教材.ppt
- 微服务模块综合管理(模块视图管理,自动化热部署,前端资源实时刷新......)