Sql Server 知识巩固

一.替换 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;





你可能感兴趣的:(sql,函数,server,select)