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

HANA语法随手记:<> ‘NULL‘值问题

每种数据库对应NULL值的处理都不相同,最近有遇见这个语法,脑子老是记不清楚,干脆写个笔记记一下吧。

SQL:

SELECT B.TEST1

FROM A LEFT JOIN B ON A. T1 =  B.T1

WHERE B.TEST1 <> 'A'

这种情况下 如果关联不到B表我是不想排除掉的,只是排除关联到并且B.TEST1 不等于A 的数据,

但是HANA返回的结果会排除掉没关联到B的数据,原因是因为:

  当你添加`WHERE 右表.某列 <> 'A'` 条件时:

   - 如果右表没有匹配的行(即`LEFT JOIN`后右表数据为`NULL`),则`右表.某列`的值是`NULL`

   - `WHERE 右表.某列 <> 'A'` 条件在遇到`NULL`时,比较结果会是`UNKNOWN`(SQL的三值逻辑之一)

   - `WHERE` 条件会过滤掉计算结果不为`TRUE`的行(即`UNKNOWN`的行会被排除)

**结论:`NULL`的行会被过滤掉** 

- 在`LEFT JOIN`后右表某列为`NULL`的行

- 在`WHERE 右表.某列 <> 'A` 条件下,`NULL`值会导致比较结果为`UNKNOWN`

- `WHERE` 条件会排除这些`UNKNOWN`的行,因此它们不会被包含在最终结果中

解决办法 

SELECT B.TEST1

FROM A LEFT JOIN B ON A. T1 =  B.T1

WHERE IFNUULL(B.TEST1,'') <> 'A'

**实际效果:`NULL`的行会被`WHERE`条件排除** 

所以,如果你在`LEFT JOIN`后添加了`WHERE 右表.某列 <> 'WG'`的条件,那么右表关联列为`NULL`的行会被排除在结果集之外。

http://www.dtcms.com/a/298267.html

相关文章:

  • php算法-- 关联数组使用,优化sip账号去重
  • 验证 GitHub Pages 的自定义域(Windows)
  • 从混乱到秩序:IT服务管理如何重塑企业运营效率
  • CTF-Web题解:“require_once(‘flag.php‘); assert(“$i == $u“);”
  • C++ STL常用容器总结(vector, deque, list, map, set)
  • Schmidt 分解 ⚙️ 与 SVD 之间的本质联系
  • IDM:registered with a fake serial number
  • TDengine 转化函数 TO_UNIXTIMESTAMP 用户手册
  • 188.买卖股票的最佳时机IV 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费
  • Java 笔记 lambda
  • 多层感知机(深度学习-李沐-学习笔记)
  • 【WPS】office邮件合并,怎么将数据源excel中的下一条拼接在文档中的下一个位置
  • selenium 元素定位
  • 深入浅出设计模式——创建型模式之工厂模式
  • 机器学习(九):KNN算法全解析与项目实践
  • 记录es收集日志报错问题as the final mapping would have more than 1 type[XXX,doc]
  • HCIP MGRE实验
  • 【机器学习之推荐算法】基于矩阵分解和损失函数梯度下降的协同过滤算法实现
  • RAG实战指南 Day 24:上下文构建与提示工程
  • C 语言 | 结构体详解:自定义数据类型的艺术
  • 【第四章:大模型(LLM)】01.神经网络中的 NLP-(1)RNN、LSTM 和 GRU 的基本原理和应用
  • MySQL常用日期函数总结
  • [1-01-01]第42节:不可变字符序列 - String类中常用的API
  • 福彩双色球篮球号码的加减法
  • 探秘抖音商城:软件采集视角下的电商生态与数据价值
  • DeepSeek DeepEP学习(四)normal combine
  • zabbix----设置告警
  • Linux 系统时间设置(date 和 ntpdate)-linux028
  • Zookeeper学习专栏(十):核心流程剖析之服务启动、请求处理与选举协议
  • 最新Amos 29下载及详细安装教程,附免激活中文版Amos安装包