0

以下は、列名を動的に取得し (例 F8 は列名)、@wcodeに格納するコードです。私が必要とするのは、以下に指定された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 に答える