DECLARE @VALUE NVARCHAR(150) SELECT @VALUE = col1 FROM Table1 WHERE itemId = 1 --对单个查询结果值有效,否则报错
DECLARE @VALUE NVARCHAR(150) set @VALUE='' SELECT @VALUE=@VALUE+col1 FROM Table1 WHERE itemId = 1orDECLARE @VALUE NVARCHAR(150)SELECT top 1 @VALUE=col1 FROM Table1 WHERE itemId = 1
DECLARE @VALUE NVARCHAR(150) SELECT @VALUE=col1 FROM Table1 WHERE itemId = 1 如果结果只有一个记录可以这样,多了就要用表变量
set @VALUE =SELECT col1 FROM Table1 WHERE itemId = 1 exec(select * from '+@value+')
如果是单值DECLARE @VALUE NVARCHAR(150)SELECT @VALUE = col1 FROM Table1 WHERE itemId = 1
如果是多值,用游标实现.declare @id int,@name varchar(20); declare cur cursor fast_forward for select id,name from a; open cur; fetch next from cur into @id,@name; while @@fetch_status=0 begin --做你要做的事 fetch next from cur into @id,@name; end close cur; deallocate cur;
---单值DECLARE @VALUE NVARCHAR(150)SELECT @VALUE = col1 FROM Table1 WHERE itemId = 1
--单值 DECLARE @VALUE NVARCHAR(150) SELECT @VALUE = col1 FROM Table1 WHERE itemId = 1--多值 DECLARE @TB TABLE ( Value NVARCHAR(150) ) INSERT INTO @TB SELECT col1 FROM Table1 WHERE itemId = 1
set @VALUE=''
SELECT @VALUE=@VALUE+col1 FROM Table1 WHERE itemId = 1orDECLARE @VALUE NVARCHAR(150)SELECT top 1 @VALUE=col1 FROM Table1 WHERE itemId = 1
如果结果只有一个记录可以这样,多了就要用表变量
exec(select * from '+@value+')
如果是单值DECLARE @VALUE NVARCHAR(150)SELECT @VALUE = col1 FROM Table1 WHERE itemId = 1
declare cur cursor fast_forward for
select id,name from a;
open cur;
fetch next from cur into @id,@name;
while @@fetch_status=0
begin
--做你要做的事
fetch next from cur into @id,@name;
end
close cur;
deallocate cur;
DECLARE @VALUE NVARCHAR(150) SELECT @VALUE = col1 FROM Table1 WHERE itemId = 1--多值
DECLARE @TB TABLE
(
Value NVARCHAR(150)
)
INSERT INTO @TB
SELECT col1 FROM Table1 WHERE itemId = 1