DECLARE @VALUE NVARCHAR(150)SELECT col1 FROM Table1 WHERE itemId = 1我想将 col1 的内容放到 @VALUE 里,请问该怎么做?谢谢。

解决方案 »

  1.   

    DECLARE @VALUE NVARCHAR(150) SELECT @VALUE = col1 FROM Table1 WHERE itemId = 1  --对单个查询结果值有效,否则报错
      

  2.   

    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
      

  3.   

    DECLARE @VALUE NVARCHAR(150) SELECT @VALUE=col1 FROM Table1 WHERE itemId = 1 
    如果结果只有一个记录可以这样,多了就要用表变量
      

  4.   

    set @VALUE =SELECT col1 FROM Table1 WHERE itemId = 1
    exec(select * from '+@value+')
      

  5.   


    如果是单值DECLARE @VALUE NVARCHAR(150)SELECT @VALUE  = col1 FROM Table1 WHERE itemId = 1
      

  6.   

    如果是多值,用游标实现.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;
      

  7.   

    ---单值DECLARE @VALUE NVARCHAR(150)SELECT @VALUE  = col1 FROM Table1 WHERE itemId = 1
      

  8.   

    --单值
    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