当前位置: 首页 > news >正文

sql on条件判断是要注意null值

我是因为用了merge into语法,然后on条件中判断的字段是可配置的,这就导致了,有时候判断条件多的情况下,判断的字段会碰到有null值的情况,如果on两边的字段都是null,null和null对比就会导致结果为false,采取的操作就全都是insert了,碰到这种数据,就永远都不会走到更新逻辑了。

解决方案

使用COALESCE函数:COALESCE函数用于返回一组表达式中的第一个非NULL值,将NULL值替换为其他非NULL值。例如:

MERGE INTO target_table AS T
USING source_table AS S
ON (COALESCE(T.column_name, '') = COALESCE(S.column_name, ''))
WHEN MATCHED THEN-- 更新或插入操作
WHEN NOT MATCHED THEN-- 插入操作

总结

以上方案是可以用,但是存在一个问题时,有可能类型会不匹配,不过测试后发现,基于目前我使用的数据库,采用空字符串可以兼容大部分的类型默认值,包括时间和数字,所以用COALESCE(T.column_name, ‘’)就好了。

http://www.lryc.cn/news/172853.html

相关文章:

  • 9.22(一):数组扁平化
  • 【vue2第十九章】手动修改ESlint错误 和 配置自动化修改ESlint错误
  • 计算机网络常见面试题
  • springboot整合MeiliSearch轻量级搜索引擎
  • 禁用鼠标的侧边按键
  • 【C语言】数组和指针刷题练习
  • 2023年中国研究生数学建模竞赛D题解题思路
  • 在编译源码的环境下,搭建起Discuz!社区论坛和WordPress博客的LNMP架构
  • 腾讯面试题:无网络环境,如何部署Docker镜像?
  • 医学影像信息(PACS)系统软件源码
  • 【01】FISCOBCOS的系统环境安装
  • flutter 权限和图片权限之前的冲突
  • OpenCV(四十八):读取视频和保存视频
  • 如何在react/next.js app中的同级组件间传递数据
  • 软件需求文档、设计文档、开发文档、运维文档大全
  • 排序算法-----归并排序
  • docker 配置 gpu版pytorch环境--部署缺陷检测--Anomalib
  • 为什么定时发朋友圈会更有效呢?
  • 【跟小嘉学 PHP 程序设计】一、PHP 开发环境搭建
  • 【zookeeper】zk选举、使用与三种节点简介,以及基于redis分布式锁的缺点的讨论
  • Unity截图生成图片 图片生成器 一键生成图片
  • Matlab图像处理-区域特征
  • golang 自动生成文件头
  • Excel中的宏、VBA
  • 2023华为杯数学建模研赛思路分享——最全版本A题深度解析
  • 【校招VIP】测试方案之测试需求分析
  • 滚珠螺母的清洁方式
  • leetcode做题笔记148. 排序链表
  • 多线程学习
  • 软件测试/测试开发丨ChatGPT在测试计划中的应用策略