Мне нужно выполнить условие в строке, которая имеет "ns [0-9]:", где [0-9] может быть любым числом, даже большим 10.
Пример:
DECLARE @test TABLE ( value VARCHAR(20))
INSERT INTO @test VALUES
( 'ns1:'),
( 'NOT OK'),
( 'ns7:'),
( 'ns8:'),
( 'ns9:'),
( 'ns10:'),
( 'ns11:' )
SELECT *, PATINDEX( '%ns[0-9]:%', value ) passes
FROM @test
Это работает только с 1 по 9, а не с 10 и выше. Я могу использовать [0-9] [0-9], но тогда он работает только на 10 и выше. Я тоже не хочу подстановочный знак между числом и двоеточием.
Я только хочу, чтобы следующий формат возвращал 1 с patindex
ns1 :, ns2 :, ns10 :, ns11: и т. Д.
Мне также нужно нефункциональное решение. Из соображений производительности я хочу использовать такую строку, как функциональность
Спасибо