Вы можете попытаться использовать подход, основанный на JSON. Вам необходимо преобразовать входные данные в действительный массив JSON с заменой строки (10 20 50 60 70
преобразуется в [10,20,50,60,70]
):
Таблица:
CREATE TABLE Data (
TextData varchar(100)
)
INSERT INTO Data
(TextData)
VALUES
('10 20 50 60 70'),
('11 80'),
('34 47'),
('20'),
('30 60 80')
Оператор:
SELECT d.TextData, j.[value]
FROM Data d
OUTER APPLY (
SELECT TOP(1) [value]
FROM OPENJSON(CONCAT('[', REPLACE(d.TextData, ' ', ','), ']'))
WHERE CONVERT(int, [value]) > 45
ORDER BY CONVERT(int, [key])
) j
Результат:
---------------------
TextData value
---------------------
10 20 50 60 70 50
11 80 80
34 47 47
20
30 60 80 60