这两个函数中哪一个能够更好地查找输入字符串的长度?
PATINDEX ('%%{terminator}%%',inputString)
或
LEN(inputString)
答案 0 :(得分:3)
sql server中字符串的长度通常与文本分开存储。您不必走绳子就知道它有多长。它只是一个查找或查找,然后从字符串的 end (用于检查尾随空格)而不是从头开始。假设您能够构造PATINDEX以返回字符串的最后一个索引,那么仍然需要您遍历字符串以评估长度。我想你可以构建一个PATINDEX更快的场景,但前提是你的字符串主要由尾随空格组成。
所以LEN()以你能想到的任何方式赢得胜利:语义(最好地传达你正在做的事情的意思),正确性(让PATINDEX变得很难)和性能。