我已经创建了一个计算不同数据的SQL函数,它看起来像这样:
Declare @parameter1 float, @parameter2 float, @parameter3 float, @parameter4 float
SET @parameter1 = 3
SET @parameter1 = 5
SET @parameter1 = 7
SET @parameter1 = 9
dbo.SqlFuntion(@parameter1, @parameter2, @parameter3, @parameter4)
现在这很好用,我的挑战是我希望从数据库表中检索我的参数,而不是手动声明它们。
所以我想要这样的东西:
Select name, age, postal, weight from TableValues where ID = 1234
dbo.SqlFuntion(name, age, postal, weight)
任何人都可以告诉我如何做到这一点,而不宣布任何事情?
答案 0 :(得分:2)
你可以这样做:
Declare @parameter1 float, @parameter2 float, @parameter3 float, @parameter4 float
Select @parameter1 = name, @parameter2 = age, @parameter3 = postal, @parameter4 = weight
from TableValues where ID = 1234
dbo.SqlFuntion(@parameter1, @parameter2, @parameter3, @parameter4)
答案 1 :(得分:1)
//您可以使用游标,它可以帮助您
DECLARE v_done INT DEFAULT FALSE;
DECLARE v_name VARCHAR(50);
DECLARE v_age DOUBLE;
DECLARE v_postal VARCHAR(10);
DECLARE v_weight DOUBLE;
DECLARE cur1_cursor CURSOR FOR SELECT name, age, postal, weight from TableValues where ID = 1234 ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_done = TRUE;
OPEN cur1_cursor;
read_loop: LOOP
FETCH cur1_cursor INTO v_name,v_age,v_postal,v_weight;
IF v_done THEN
LEAVE read_loop;
END IF;
SET @v_name = v_name;
SET @v_age = v_age;
SET @v_postal = v_postal;
SET @v_weight = v_weight;
dbo.SqlFuntion(@v_name, @v_age, @v_postal, @v_weight);
END LOOP;