SQL/T-SQL实例参考-1
CASE
,D.[Score] B_Score
,'Distince'=
CASE
WHEN C.Score > D.Score THEN C.[Score] - D.[Score]
WHEN C.Score < D.Score THEN D.[Score] - C.[Score]
ELSE 0
END
FROM [tbiz_AssScoreAction] C
INNER JOIN [tbiz_AssScoreAction] D
ON C.QuestionID =D.QuestionID AND (C.RelationID -30) = D.RelationID
WHERE C.RelationID=30 AND C.ProjectID=65 AND C.PersonID=2430
--等价语法
,D.[Score] - C.Score Ta_Zi
,CASE
WHEN C.[Score] > D.[Score] THEN C.[Score] - D.[Score]
WHEN C.[Score] < D.[Score] THEN D.[Score] - C.[Score]
ELSE 0
END AS Distince
CASE 判断 NULL的情况
CASE WHEN [ReadState] IS NULL OR [ReadState]=0 THEN '未读' ELSE '已读' END AS ReadStateName
SELECT CASE Type_No
WHEN 2 THEN Customer_No
WHEN 4 THEN Customer_No
WHEN 10 THEN Customer_No
WHEN 11 THEN Customer_No
WHEN 3 THEN Organization_Name
WHEN 5 THEN Organization_Name
END AS Customer_No
FROM [Lx_Finance_Transfer_ForNC]
SELECT
A.TESTID,
A.SCALEID,
B.NAME,
B.COUNT,
B.ASSTIME,
A.STATE,
CASE
WHEN A.MATCH IS NULL THEN
0 ELSE CAST (A.MATCH AS NUMERIC ( 26, 2 ))
END AS MATCH
FROM
TD_TEST_INFO A
JOIN ASS_SCALE B ON A.SCALEID= B.SCALEID
JOIN
SELECT T.Id,T.pingZhengNum FROM Lx_Finance_Transfer_ForNC T
LEFT JOIN Lx_Finance_Flow_ForNC F ON T.Id=F.PingZhengId
LEFT JOIN
解读:尽管主档表T只有1条记录,但是在分档表中有2条记录与之关联,所以SELECT结果集有2条.
SELECT T.Id T_Id,T.pingZhengNum,F.* FROM Lx_Finance_Transfer_ForNC T
INNER JOIN Lx_Finance_Flow_ForNC F ON T.Id=F.PingZhengId
-- 效果和LEFT JOIN 一样
RIGHT JOIN
解读:T表从RIGHT链接F表,SQL引擎会保留F表中所有记录
自连接
SELECT A.* ,
B.RelationName ,
B.Score T_Score ,
B.ID T_ID
FROM [tbiz_AssScoreWeidu] A
INNER JOIN [tbiz_AssScoreWeidu] B
ON A.WeiduNo = B.WeiduNo AND A.RelationID = B.RelationID + 30
WHERE A.ProjectID = 65
AND A.PersonID = 2430
AND ( A.RelationID = 30 OR B.RelationID = 0 )
AND A.WeiduNo = 'C211-13'
自链接+WHERE条件
SELECT A.DictItemID ,
B.ItemName ParentItemName ,
A.ItemType ,
A.ItemName ,
A.ItemCode ,
A.CreatedBy ,
A.IsDelete
FROM tcfg_DictItem A
LEFT JOIN tcfg_DictItem B ON B.DictItemID = A.ParentID
WHERE A.ParentID != 0
一对多关系JOIN一行
SELECT *
FROM (
SELECT A.Id
,A.PingZhengNum
,A.CRT_Date
,A.[Enabled]
,B.Id FlowId
,B.Type_No_Name
,B.VouchType
,ROW_NUMBER() OVER
(
PARTITION BY A.Id
ORDER BY B.CRT_Date
)
AS rn
FROM [Lx_Finance_Transfer_ForNC] A LEFT OUTER JOIN dbo.Lx_Finance_Flow_ForNC B
ON A.Id=B.PingZhengId
) m
WHERE rn=1
解读:主档表记录多,分档表记录少,参考
方案二
SELECT A.Id
,A.PingZhengNum
,A.CRT_Date
,A.[Enabled]
,B.Id FlowId
,B.Type_No_Name
,B.VouchType
FROM [Lx_Finance_Transfer_ForNC] A
OUTER APPLY
(
SELECT TOP 1 *
FROM Lx_Finance_Flow_ForNC C
WHERE PingZhengId = A.Id
ORDER BY CRT_Date DESC
) B
ROW_NUMBER() OVER(....) AS Xxx
SELECT [PersonID] ,
ROW_NUMBER() OVER
(
ORDER BY A.Id
) AS RowID
FROM [tbiz_AssScore] A
简单的说row_number()从1开始,为每一条"分组"记录返回一个数字,分组对应关键词PARTITION BY XXX,为可选关键词
当出现GROUP BY 子句时,GROUP BY会影响到ROW_NUMBER()中的字段,如下面的第5行
SELECT [PersonID] ,
AVG([Score]) AVG_Score,
ROW_NUMBER() OVER
(
ORDER BY A.PersonID
) AS RowID
FROM [tbiz_AssScore] A
GROUP BY PersonID
ORDER BY AVG_Score
PARTITION BY 子句 + ROW_NUMBER() OVER(....) AS rn
PARTITION BY 理解成"分组"
SELECT * FROM(
SELECT C.[ID]
,D.ID BID
,C.[ProjectID]
,C.[PersonID]
,C.[QuestionID]
,C.[QuestionName]
,C.[WeiduNo]
,C.[WeiduNAME]
,C.[RelationID]
,C.[RelationName]
,C.[Score]
,D.RelationName B_RelationName
,D.[Score] B_Score
,D.[Score] - C.Score Ta_Zi
,ROW_NUMBER() OVER
(
PARTITION BY D.ID,C.[ProjectID],C.[PersonID],C.[QuestionID]
ORDER BY C.[ID]
)
AS rn
FROM [tbiz_AssScoreAction] C
INNER JOIN [tbiz_AssScoreAction] D
ON C.QuestionID = D.QuestionID AND (C.RelationID -30) = D.RelationID
WHERE C.RelationID=30 AND C.ProjectID=65 AND C.PersonID=2430
) m WHERE rn = 1 ORDER BY Ta_Zi
DECLARE
DECLARE @MedicalInstitutionID VARCHAR(max) SET @MedicalInstitutionID='SYS20130228000000012'
DECLARE @ResidentCardID VARCHAR(max) SET @ResidentCardID=NULL
DECLARE @Name VARCHAR(max) SET @Name=NULL
DECLARE @InDateLeft DATETIME SET @InDateLeft=NULL
DECLARE @InDateRight DATETIME SET @InDateRight=NULL
DECLARE @AcceptsOperatorID VARCHAR(max) SET @AcceptsOperatorID=NULL
DECLARE @AcceptsOperatorName VARCHAR(max) SET @AcceptsOperatorName=NULL
DECLARE @IsPrint INT SET @IsPrint=null
SQL/T-SQL实例参考-1的更多相关文章
- SQL/T-SQL实例参考
,D.[Score] B_Score ,'Distince'= CASE WHEN C.Score > D.Score THEN C.[Score] - D.[Score] WHEN C.Sco ...
- SQL/T-SQL实例参考-2
对多关联查询,查询多中的记录,但是返回一的结果集 子查询语法 --一对多关联查询,查询多中的记录,但是返回一的结果集 SELECT C.* FROM ( SELECT A.BasicID FROM [ ...
- SQL Server的实例恢复解析
同Oracle一样,SQL Server在非一致性关闭的时候也会进行实例恢复(Instance Recovery),本文根据stack overflow的文章介绍一些SQL Server实例恢复的知识 ...
- SQL群集多实例卸载、安装
安装SQL多实例群集: 准备工作:准备SQL群集管理员及服务账号:sqladmin和srv-sql,sqladmin和srv-sql都属于群集节点计算机的administrators组 预留群集名称账 ...
- SQL Server 多实例下的复制
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建步骤(Procedure) 注意事项(Attention) 二.背景(Contexts) ...
- 在线API,桌面版,jquery,css,Android中文开发文档,JScript,SQL掌用实例
学习帮助文档大全 jquery,css,Android中文开发文档,JScript,SQL掌用实例 http://api.jq-school.com/
- 当SQL Server的实例位于集群的特定节点时,数据库无法远程访问
搭建好了一个集群环境,发现当SQL Server的实例位于集群的其中一个节点时,数据库无法远程访问,报如下错误.但在另一个 节点时,数据库访问正常. 标题: 连接到服务器 -------------- ...
- Delphi调用SQL分页存储过程实例
Delphi调用SQL分页存储过程实例 (-- ::)转载▼ 标签: it 分类: Delphi相关 //-----下面是一个支持任意表的 SQL SERVER2000分页存储过程 //----分页存 ...
- Step7:SQL Server 多实例下的复制
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建步骤(Procedure) 注意事项(Attention) 二.背景(Contexts) ...
随机推荐
- Vue forms
Vue forms Vue 的表单. 表单中的数据和是双向绑定的. 你可以使用 v-model 对控件元素进行数据双向绑定. 比较有用的修饰符 .lazy .number .trim
- 预备架构的工具ADMEMS矩阵
矩阵,是很多著名方法的核心.例如,制定公司层战略的方法之一是"波士顿矩阵","波士顿矩阵"又称"市场增长率-相对市场份额矩阵". " ...
- openwrt: Makefile 框架分析[转载]
openwrt目录结构 上图是openwrt目录结构,其中第一行是原始目录,第二行是编译过程中生成的目录.各目录的作用是: tools - 编译时需要一些工具, tools里包含了获取和编译这些工具的 ...
- 浅析Java中的深拷贝和浅拷
浅析Java中的深拷贝和浅拷贝 原文链接: http://blog.csdn.net/tounaobun/article/details/8491392 假如说你想复制一个简单变量.很简单: in ...
- PV 和 UV IP
PV(page view),即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标. 高手对pv的解释是,一个访问者在24小时(0点到24点)内到底看了你网站几个页面.这里 ...
- 二叉搜索树的结构(30 分) PTA 模拟+字符串处理 二叉搜索树的节点插入和非递归遍历
二叉搜索树的结构(30 分) PTA 模拟+字符串处理 二叉搜索树的节点插入和非递归遍历 二叉搜索树的结构(30 分) 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则 ...
- 解决webpack因新版本打包失败问题--ERROR in multi ./src/main.js ./dist/bundle.js
最近在学习webpack打包过程中遇到的一个问题向大家分享下! 创建了一个webpacksty的目录,目录下放着dist,src子目录,然后通过node环境下,npm init -y 初始化项目出现p ...
- 基于windows平台的命令行软件安装工具Chocolatey的安装
本文介绍Chocolatey的安装和使用 Chocolatey 这是基于.NET Framework 4以上的windows安装软件的命令行工具 安装 第一步,打开你的powershell.exe,使 ...
- nested exception is java.net.UnknownHostException: mybatis.org异常处理
最近自己写了个小项目(丛林商城V1.0),一个简单的网上商铺:主界面是商品的展示和登录,面对三种角色的人群:一般客户,VIP客户,管理员,与之对应的三种商品价格,登陆后根据具体角色来显示商品的价格:还 ...
- 常见浏览器bug以及解决方法
1.图片下方3像素: (1).描述:在div中插入图片时,图片会将div下方撑大三像素. (2).hack1:将</div>与<img>写在一行上(可以解决ie6/7): (3 ...