Не могли бы вы помочь мне выбрать строки, которые содержат хотя бы 1 значение в диапазоне от 1000 до 1999. У меня есть столбец (nvarchar (255):
col1
5501, 3500
3001, 3050, 4020
1030, 1010, 1043, 2000
3010, 1420, 8000, 2044
1330, 1330, 8000, 3111
1333, 1132, 8000, 1332
Желаемый результат:
1030, 1010, 1043, 2000
3010, 1420, 8000, 2044
1330, 1330, 8000, 3111
1333, 1132, 8000, 1332
Я пытался использовать самописанную функцию splitstring:
ALTER FUNCTION [dbo].[fn_splitstring] ( @stringToSplit VARCHAR(MAX) )
RETURNS
@returnList TABLE ([Name] [nvarchar] (500))
AS
BEGIN
DECLARE @name NVARCHAR(255)
DECLARE @pos INT
WHILE CHARINDEX(',', @stringToSplit) > 0
BEGIN
SELECT @pos = CHARINDEX(',', @stringToSplit)
SELECT @name = SUBSTRING(@stringToSplit, 1, @pos-1)
INSERT INTO @returnList
SELECT @name
SELECT @stringToSplit = SUBSTRING(@stringToSplit, @pos+1, LEN(@stringToSplit)-@pos)
END
INSERT INTO @returnList
SELECT @stringToSplit
RETURN
END
и string_agg()
, но она работает только с одной строкой.
Большое спасибо.