0

我有一个可以有 3 种不同长度(10、11 和 12)的字符串。如果输入完整的字符串,我不想进行通配符搜索,例如,如果abc1234567输入并且这是最大长度,我不想搜索abc1234567%,但如果它不是最大长度,我会想通配它。

这对性能有多大影响,尤其是在您加入字符串的情况下?

4

1 回答 1

1

你可以这样做:

 WHERE AnotherField LIKE CASE WHEN LEN(MyField) <> 10 --or some other number
                    THEN MyField + '%'
                    ELSE MyField END

但性能方面LIKE MyField +'%'应该是每行执行的操作较小。如果字符串具有最大长度,则它不会返回误报,因为没有超过它的字符。

于 2012-11-15T20:00:07.280 回答