Альтернативное решение для возвращающая табличное значение функция SQL в СУБД MySQL
У меня есть функция, возвращающая табличное значение в SQL, который работает нормально, теперь я хочу такую же функцию для использования в MySQL, но я не в состоянии создать эту функцию в MySQL, так как нет функции, возвращающие табличные значения в MySQL я попытался с помощью хранимых процедур, но я хочу использовать этот выход в другом СП, на которые я не могу использовать Select * из магазина процедура
Пожалуйста, предложите некоторые изменения.
Вот моя функция sql, которую я хочу в MySQL
Что я уже пробовал:
ALTER FUNCTION [dbo].[TextSplit] ( @Text VARCHAR(max), @Delimiter VARCHAR(1) ) RETURNS @SplitData TABLE ( Position INT IDENTITY PRIMARY KEY, Value VARCHAR(max) ) AS BEGIN DECLARE @index int -- SET @Text = REPLACE(@Text, ' ', '') SET @index = -1 WHILE (LEN(@Text) > 0) BEGIN SET @index = CHARINDEX(@Delimiter , @Text) IF (@index = 0) AND (LEN(@Text) > 0) BEGIN INSERT INTO @SplitData VALUES (@Text) BREAK END IF (@index > 1) BEGIN INSERT INTO @SplitData VALUES (LEFT(@Text, @index - 1)) SET @Text = RIGHT(@Text, (LEN(@Text) - @index)) END ELSE SET @Text = RIGHT(@Text, (LEN(@Text) - @index)) END RETURN END
Если мы передадим эти значения
SELECT * FROM [dbo].[TextSplit]('2009-2010', '-')
функция возвращает следующий вывод
Position Value 1 2009 2 2010