0

下面是我动态获取列名的代码(例如 F8 是列名)并将其存储在@whcode中。我需要的是存储在此列中的值,用于下面指定的where条件。我可以看到存储在列中的值为 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) 
4

1 回答 1

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)
于 2013-06-20T11:16:22.100 回答