gpt4 book ai didi

sql - sql server 中的 LTRIM(RTRIM(COLUMN))

转载 作者:行者123 更新时间:2023-12-01 12:07:48 24 4
gpt4 key购买 nike

我需要创建一个查询来收集列 A 不为空且不为空的所有行。

当我使用它时:

AND A.EXP_GRAD_TERM is not null AND A.EXP_GRAD_TERM <> ' '

我得到了 1169 条记录,这些记录都有该字段的一些值。

但是当我使用这个时:

AND LTRIM(RTRIM(A.EXP_GRAD_TERM)) is not null

我得到了 1932 条记录。他们有带值的行和带空白的行。我什至转换了列,该列只有空格或值,没有其他奇怪的不可见字符。

我不知道为什么。我认为他们应该以同样的方式工作。

有什么想法吗?

最佳答案

这个表达式:

 LTRIM(RTRIM(A.EXP_GRAD_TERM)) is not null

完全等同于:

A.EXP_GRAD_TERM is not null

空字符串不同于NULL , 因此删除空格——即使是从只有空格的字符串中删除空格——对 NULL 没有影响比较。

如果您感到困惑,也许您有使用 Oracle 的经验,其中空字符串和 NULL是一样的东西。这是 Oracle 的一个特殊属性。

关于sql - sql server 中的 LTRIM(RTRIM(COLUMN)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54832061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com