加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Sqlserver 知识巩固

发布时间:2020-12-12 13:28:40 所属栏目:MsSql教程 来源:网络整理
导读:一.替换 ?Null 值 1.COALESCE (expression_1,expression_2,...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。 在下面的示例中

一.替换?Null 值

1.COALESCE (expression_1,expression_2,...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。

在下面的示例中,显示包含三列有关某个雇员每年工资收入信息的 wages 表:hourly_wage、salary 和 commission。但是,每个雇员只能接受一种付款方式。若要确定支付给所有雇员的工资总额,请使用 COALESCE 函数接受在 hourly_wage、salary 和 commission 中找到的非空值

SELECT CAST(COALESCE(hourly_wage * 40 * 52,salary,commission * num_sales) AS money) AS 'Total Salary' FROM wages


2.ISNULL使用

SELECT E.Name AS Employee,ISNULL(M.Name,'NO MANAGER') AS Manager FROM EMP E LEFT JOIN EMP M ON E.EmployeeID = M.ManagerID

3.使用CASE ...WHEN...

SELECT E.Name AS Employee,CASE WHEN M.Name IS NULL THEN 'NO MANAGER' ELSE M.Name END AS Manager 

FROM EMP E LEFT JOIN EMP M ON E.EmployeeID = M.ManagerID

二.重置主键Identity

USE demoDB
GO
DBCC CHECKIDENT('tblEmployee',RESEED,0)

三.?SQL Server中的Merge

  use AllCityData
  Merge into StudentTarget as T 
  Using StudentSource as S
  On T.Id = S.Id
  
  When Matched Then
  Update Set T.Name = S.Name
	 
  When Not Matched Then --目标表中没有的ID,在原表中有,则插入相关数据
  Insert (Id,Name )values(S.Id,S.Name)
	
  When Not Matched By Source Then --目标表中存在,源表中不存在,则删除
  Delete;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读