我有一个字符串,可以有3种不同的长度(10,11和12)。如果输入完整字符串,我不想进行外卡搜索,例如,如果输入abc1234567
并且这是最大长度,我不想在abc1234567%
上搜索,但是如果它不是最大长度,我会想要通配它。
这会影响性能,特别是如果你加入字符串?
答案 0 :(得分:1)
你可以这样做:
WHERE AnotherField LIKE CASE WHEN LEN(MyField) <> 10 --or some other number
THEN MyField + '%'
ELSE MyField END
但性能明智LIKE MyField +'%'
应该是每行执行的较小操作。如果一个字符串是最大长度,那么它可以返回没有误报,因为没有超过它的字符。