从动态实现的列名称中获取列值

时间:2013-06-20 09:41:01

标签: sql-server sql-server-2008

以下是我动态获取列名称的代码(示例F8是列名称)并将其存储在 @whcode 中。我需要的是此列中存储的值,用于下面指定的 条件。我可以看到列中存储的值是2,但我无法得到它。它归还给我的是列名本身。如何获取列中的值。请帮忙。

declare @count1 int
set @count1 = (select min(srno) from TEMP_STOCK_uPDATE)
declare @whcode varchar(20)
select * from TEMP_STOCK_uPDATE where srno='16091'
set @whcode=(SELECT COLUMN_NAME
            FROM Ecata_New.INFORMATION_SCHEMA.COLUMNS
            where Table_Name = 'TEMP_STOCK_uPDATE'  
            and COLUMN_NAME =(select whcode from dbo.temp_stock_map where func=(select func from dbo.temp_stock_map where sr_no=6)))
--select @whcode as 'abcd'



select @whcode as 'abc'
from TEMP_STOCK_uPDATE
where 
F1=(select F1 from dbo.TEMP_STOCK_uPDATE where srno=@count1) 

1 个答案:

答案 0 :(得分:1)

您可以动态构建SQL语句来执行此操作。在varchar中构建语句,然后执行它。

DECLARE @SQL VARCHAR(4000)

SET @SQL = 'select ' + @whcode + ' from TEMP_STOCK_uPDATE where F1=(select F1 from dbo.TEMP_STOCK_uPDATE where srno=@count1)'

EXEC (@SQL)