Один из способов сделать это становится все подстроки перед расширением файла и проверка если он является числовым. Это решение работает только хорошо, если в имени файла есть только один символ .
.
select * from web_pub_subfile
where isnumeric(left(file_name,charindex('.',file_name)-1)) = 1
Примечание:
IsNumeric возвращает 1 для некоторых символов, которые не являются числа, такие как плюс (+), минус (-), а также действующие валютные символы, такие как знак доллара ($).
Для обработки имен файлов с mutliple .
символов и, если всегда есть .filetype
расширение, используйте
select * from web_pub_subfile
where isnumeric(left(file_name,len(file_name)-charindex('.',reverse(file_name)))) = 1
and charindex('.',file_name) > 0
Sample demo
Как было предложено @Blorgbeard в комментариях, чтобы избежать использования isnumeric
, использование
select * from web_pub_subfile
where left(file_name,len(file_name)-charindex('.',reverse(file_name))) NOT LIKE '%[^0-9]%'
and len(left(file_name,len(file_name)-charindex('.',reverse(file_name)))) > 0
LIKE синтаксис не является регулярным выражением: https: //msdn.microsoft.com/en-us/library/ms179859.aspx – Blorgbeard