Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql server中的LTRIM(RTRIM(列))_Sql_Sql Server_Tsql - Fatal编程技术网

sql server中的LTRIM(RTRIM(列))

sql server中的LTRIM(RTRIM(列)),sql,sql-server,tsql,Sql,Sql Server,Tsql,我需要创建一个查询来收集列a不为null且不为空的所有行 当我使用这个时: AND A.EXP_GRAD_TERM is not null AND A.EXP_GRAD_TERM <> ' ' AND LTRIM(RTRIM(A.EXP_GRAD_TERM)) is not null 我有1932张唱片。它们有带值的行和带空格的行。我甚至转换了列,列只有空格或值,没有其他奇怪的不可见字符 我不知道为什么。我认为他们应该用同样的方法工作 有什么想法吗?LTRIM()函数: 在删除前

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

当我使用这个时:

AND A.EXP_GRAD_TERM is not null AND A.EXP_GRAD_TERM <> ' '
AND LTRIM(RTRIM(A.EXP_GRAD_TERM)) is not null
我有1932张唱片。它们有带值的行和带空格的行。我甚至转换了列,列只有空格或值,没有其他奇怪的不可见字符

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

有什么想法吗?

LTRIM()函数:

在删除前导空格后返回字符表达式

RTRIM()函数:

在截断所有尾随空格后返回字符串

它们不同于IsNull或空字符串条件
(如果为NULL或“”)

参考资料

COALESCE()
LTRIM()
RTRIM()

和RTRIM(LTRIM(聚合(A.EXP_GRAD_TERM.))”
COALESCE(A.EXP\u GRAD\u TERM')
将为每个
null
值返回
'

此表达式:

 LTRIM(RTRIM(A.EXP_GRAD_TERM)) is not null
完全等同于:

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


如果您感到困惑,可能您有过Oracle的经验,其中空字符串和
NULL
是同一回事。这是Oracle特有的属性。

如果要获取非null和非空的值,可以使用isnull(exp,replace\u value)

和RTRIM(LTRIM(ISNULL(A.EXP\u GRAD\u TERM.))
isnull
isnull替换要替换的空值。您还可以使用
COALESCE
,它“返回参数中的第一个非空表达式”

与ISNULL相比,
COALESCE
有一个明显的优势,即它支持两个以上的输入,而ISNULL只支持两个。COALESCE的另一个优点是它是一个标准函数(即,由ISO/ANSI SQL标准定义),而ISNULL是特定于T-SQL的。这两个函数之间的区别相当简单


如果您想了解有关ISNULL和COALESCE之间差异的更多信息,可以在

上看到,
的结果是什么,并且LTRIM(RTRIM(A.EXP_GRAD_TERM))不为null,而A.EXP_GRAD_TERM''
763
行仅由空字符串或空格字符组成,这些字符不算作
null
。顺便说一句,尾随空格在字符串比较中并不重要,因此
'
'
是相同的东西。您可以进一步“修剪”它,尾随空格在比较中被忽略,因此
RTRIM
也不是必需的。@honey。LTRIM也不在这里。
A.EXP_GRAD_TERM is not null
AND RTRIM(LTRIM(ISNULL(A.EXP_GRAD_TERM, ''))) <> ''