我有一个简单的表:
CREATE TABLE [dbo].[test]
(
[eins] [varchar](50) NOT NULL,
[zwei] [varchar](50) NULL,
CONSTRAINT [PK_test]
PRIMARY KEY CLUSTERED ([eins] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
有两列eins
und zwei
,都是 varchar(50)
与价值观
insert into test(eins, zwei) values(1,2)
1 和 2 在相应的列中。
查询
select eins from test
给出正确的结果1
以下代码还在1
结果窗口中给出了正确的结果:
declare
@in varchar(50),
@sql nvarchar(500)
set @in = 'eins'
set @sql = 'select ' + @in + ' from test'
Exec(@sql)
但是,它不使用输出参数,我需要结果进行进一步处理。
所以,我尝试:
exec sp_executesql N' Select @1 from test where zwei = @2',N'@1 nvarchar(100),@2 nvarchar(100)',@1=N'eins',@2=N'2'
预期结果为1
。但是:结果是eins
,即列名,而不是值。
我怎样才能查询类似的东西Select @Variable from @Variable2 where @variabel3 = @Variable4
?
表和列可以是非变量,如果需要,最重要的是Select @Variable
. 我需要这个值进行进一步处理。