Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这两个函数中哪一个在查找输入字符串的长度时性能更好?
PATINDEX ('%%{terminator}%%',inputString)
或者
LEN(inputString)
sql server 中字符串的长度通常与文本分开存储。你不必走线就知道它有多长。它只是一个查找,或者一个查找,然后是从字符串的末尾(检查尾随空格),而不是开头。假设您能够构造一个 PATINDEX 来返回字符串的最后一个索引,那仍然需要您遍历字符串来评估长度。我想您可以构建一个 PATINDEX 更快的场景,但前提是您的字符串主要由尾随空格组成。
所以 LEN() 以任何你能想到的方式在这里获胜:语义(最好地传达你正在做的事情的含义)、正确性(正确的 PATINDEX 会很棘手)和性能。