Это вопрос, основанный на производительности, а не вопрос « Я не понимаю » или « передовой опыт ».
У меня есть вопрос varchar в базе данных SQLServer, длина которого гарантированно превышает 7 символов. Мне нужно извлечь поле char (4), состоящее из 2-го, 3-го, 4-го и 5-го символов в varchar.
Например, если бы varchar имел значение 1234567890, я бы искал часть 2345.
Is есть ли преимущество в производительности при использовании подстроки по сравнению с комбинацией справа-слева?
SELECT SUBSTRING(account,2,4) FROM payment
или
SELECT RIGHT(LEFT(account,5),4) FROM payment
Я заметил небольшое преимущество при использовании правой-левой в таблице с 1760 335 записями, но я не уверен, связано ли это с запросами кеширования и т.п.
ОБНОВЛЕНИЕ Я сделал еще немного домашней работы. Кажется, что в этом случае Right-Left в конечном итоге выполняется как Right-Substring. Это правило? или это просто способ, которым SQLServer решил снять шкуру с этой кошки?