相关疑难解决方法(0)

SQL Server是否支持IS DISTINCT FROM子句?

SQL Server是否支持IS DISTINCT FROMSQL:1999标准的语句?例如查询

SELECT * FROM Bugs WHERE assigned_to IS NULL OR assigned_to <> 1;
Run Code Online (Sandbox Code Playgroud)

可以使用重写 IS DISTINCT FROM

SELECT * FROM Bugs WHERE assigned_to IS DISTINCT FROM 1;
Run Code Online (Sandbox Code Playgroud)

sql sql-server distinct sql-server-2008 sql-server-2008-r2

17
推荐指数
1
解决办法
3697
查看次数

如何处理合并SQL的WHEN MATCHED中的空值?

MERGE TARGET T
USING SOURCE S
ON T.ID=S.ID

WHEN MATCHED AND (S.NAME<>T.NAME OR S.DOB<>T.DOB)
THEN UPDATE
SET T.NAME=S.NAME, T.DOB=S.DOB;
Run Code Online (Sandbox Code Playgroud)

以上无法处理源端或目标端 name/dob 为空的情况。因为与 NULL 的比较返回 false。这要怎么处理呢?

例子:

COALESCE(S.NAME,'')<>COALESCE(T.NAME,'')
Run Code Online (Sandbox Code Playgroud)

或者

COALESCE(S.NAME,0)<>COALESCE(T.NAME,0)
Run Code Online (Sandbox Code Playgroud)

或者

NULLIF(S.NAME,'')<>NULLIF(T.NAME,'')
Run Code Online (Sandbox Code Playgroud)

sql sql-server

-2
推荐指数
1
解决办法
3099
查看次数