Использование более ограничительного значения LIKE, такого как
PartNum LIKE 'R71-14-4____-ATN-LH-D-PF'
, ответит на конкретный запрос «значения с 3-м сегментом, начинающимся с 4». Это также может быть ..14-4%-ATN..
, хотя я выбрал подстановочный знак _
точно-одно совпадение для явности фиксированной длины третьего сегмента (5); это также проще для движка. или 6 ..
PartNum LIKE 'R71-14-[456789]____-ATN-LH-D-PF'
Это работает в SQL Server , хотя могут быть небольшие различия в различных реализациях RDMBS. Этот подход основан на лексике, который отлично работает с односимвольными целочисленными значениями, даже если он не использует / не использует равенство numeri c. SQL Сервер также поддерживает отрицание символов, что может быть полезно - см. Документацию для спецификаций c РСУБД.
Начальные и конечные %
не нужны для отображаемых данных. Использование начального %
также может быть очень вредным для использования индекса.
Завершающий %
имеет больше смысла, если не заботиться об оставшихся сегментах,
PartNum LIKE 'R71-14-[456789]____-%'
И если необходимо только заботится о 3-м сегменте,
PartNum LIKE '___-__-[456789]____-%'
PartNum LIKE '___-__-[456789]%' -- or even this
Обратите внимание на отличие от исходного запроса (..14-%-ATN..
), который соответствует всем значениям, как ожидалось. Это потому, что не добавляет какие-либо ограничения к значению 3-го сегмента.