sql - 使用 Null 进行左连接的 SQL 案例
问题描述
我正在尝试通过将新数据与原始数据左连接并比较输出来创建比较查询。我的查询很简单,但似乎无法让它做我想做的事。我知道我不能像其他值一样比较 NULL 值,但我希望通过执行 ISNULL 会给我我需要的结果:
SELECT O.Ded1,
ISNULL(N.Ded2, 0) AS Ded2,
CASE
WHEN O.Ded1 = N.Ded2 THEN 'Correct'
ELSE 'Incorrect'
END AS 'DED CHECK'
FROM #Tmp_ORIG_DATA O
LEFT JOIN #Tmp_NEW_DATA N ON O.ID = N.ID
我想知道是否需要将这些值插入临时表以使其成为物理值?
提前致谢
抱歉,我应该添加此查询的结果:
真的,我希望支票说正确。
谢谢
解决方案
您明确检查无效性。需要额外的检查来区分不匹配的行和匹配的行 where Ded2
is null
。
SELECT
O.Ded1,
N.Ded2,
CASE
WHEN O.Ded1 = N.Ded2
OR (N.ID IS NOT NULL AND o.Ded1 IS NULL AND N.Ded2 IS NULL)
THEN 'Correct'
ELSE 'Incorrect'
END AS 'DED CHECK'
FROM #Tmp_ORIG_DATA O
LEFT JOIN #Tmp_NEW_DATA N ON O.ID = N.ID
推荐阅读
- c++ - 使用 cmd 读取文件并插入到 c++ 中
- c# - ZipArchiveMode.Update 进程无法访问该文件,因为它正被另一个进程使用
- android - 新活动不显示(Android Studio)
- textblob - textblob.exceptions.NotTranslated:翻译 API 未更改地返回输入字符串
- python - AffinityPropagation .labels_ 与 .predict()
- python - 从 numpy 数组中提取总和为所需输出的组合
- c++ - 调用 emptyStack.top() 时返回什么
- google-apps-script - 在 Google 脚本中将值从一列复制到另一列
- excel - 单元格的列表验证
- c - 为什么在处理ucontext时打印到stderr会导致分段错误?