У меня есть оператор SELECT, возвращающий набор строк.
Из каждой строки мне нужно получить значение одного столбца и передать его в хранимую процедуру, чтобы получить значение, которое мне нужно будет предоставитьдля самого набора строк.
Например:
DECLARE @col1 int
DECLARE @col2 int
DECLARE @col3 varchar(20)
DECLARE myCursor CURSOR FOR
SELECT col1, col2, col3
FROM table1
WHERE....
OPEN myCursor
FETCH NEXT FROM myCursor
INTO @col1, @col2
WHILE @@FETH_STATUS = 0
BEGIN
SET @col3 = EXEC proc_GetCol3_Value @col1, @col2
FETCH NEXT FROM myCursor
INTO @col1, @col2
END
CLOSE myCursor
DEALLOCATE myCursor
Теперь, исходя из этого, я хочу вернуть строки, полученные исходным курсором, плюс значение, полученное изХранимая процедура выполняется как значение столбца 3.
Скажем, строки, возвращаемые курсором SQL:
col1 col2 col3
1 5000
2 5000
3 2500
4 2000
И мне нужно, чтобы все столбцы были предоставлены после запуска курсора и сохраненного процесса, а набор результатовbe:
col1 col2 col3
1 5000 APPROVED
2 5000 REJECTED
3 2500 CANCELLED
4 2000 APPROVED
Любые идеи приветствуются.Спасибо.
PS Я знаю, что многие посоветовали бы просто использовать оператор JOIN, но поскольку хранимая процедура, которую нужно выполнить, довольно сложна, создание соединения с оператором SQL курсора было бы слишком сложным.