1

这两个函数中哪一个在查找输入字符串的长度时性能更好?

PATINDEX ('%%{terminator}%%',inputString) 

或者

LEN(inputString)
4

1 回答 1

4

sql server 中字符串的长度通常与文本分开存储。你不必走线就知道它有多长。它只是一个查找,或者一个查找,然后是从字符串的末尾(检查尾随空格),而不是开头。假设您能够构造一个 PATINDEX 来返回字符串的最后一个索引,那仍然需要您遍历字符串来评估长度。我想您可以构建一个 PATINDEX 更快的场景,但前提是您的字符串主要由尾随空格组成。

所以 LEN() 以任何你能想到的方式在这里获胜:语义(最好地传达你正在做的事情的含义)、正确性(正确的 PATINDEX 会很棘手)和性能。

于 2013-05-15T17:27:40.100 回答