以下是我动态获取列名称的代码(示例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)
答案 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)