Sql server 解释尾随空格在SQL Server中的位置和不被忽略的位置

Sql server 解释尾随空格在SQL Server中的位置和不被忽略的位置,sql-server,string,tsql,patindex,trailing-whitespace,Sql Server,String,Tsql,Patindex,Trailing Whitespace,我相信在SQL everywhere中尾部空格会被忽略,直到我遇到一个PATINDEX场景,在那里它们不会被忽略 案例1:选择PATINDEX'qwerty','qwerty'返回1。 案例2:选择PATINDEX'qwerty','qwerty'返回1。将忽略在第二个字符串末尾插入的尾随空格。 案例3:选择PATINDEX'qwerty','qwerty'返回0 为什么它没有像案例2那样忽略在第一个字符串末尾插入的尾随空格 我相信在SQL everywhere中都会忽略尾随空格 不,他们不是。

我相信在SQL everywhere中尾部空格会被忽略,直到我遇到一个PATINDEX场景,在那里它们不会被忽略

案例1:选择PATINDEX'qwerty','qwerty'返回1。 案例2:选择PATINDEX'qwerty','qwerty'返回1。将忽略在第二个字符串末尾插入的尾随空格。 案例3:选择PATINDEX'qwerty','qwerty'返回0

为什么它没有像案例2那样忽略在第一个字符串末尾插入的尾随空格

我相信在SQL everywhere中都会忽略尾随空格

不,他们不是。它们只是为了比较而被忽略,就是这样。因此,“mystring”和“mystring”在“mystring”=“mystring”的子句中被视为相同的

然而,在使用PATINDEX之类的事情上,它们不是


请注意,LEN函数中记录了尾随空格也被忽略的情况。另一方面,DATALENGTH包含了它们。

正是我的问题。在PATINDEX中不会忽略尾随空格,但在其他位置(如WHERE、LEN等)会忽略尾随空格。插入尾随空格以完成长度,同时将值存储在表中,以便在DATALENGTH中不被忽略。是否还有其他地方不被忽视?我该如何识别,是否有规则或什么?