0

我正在尝试使用动态查询实现嵌套查询。

我尝试过这样的事情:

SET @str = 'Select @GRP= ' + @Field +' 
           from Hist_Tab 
           Where TerminalID in (Select id from newtab where lease='+@Lease +')';

exec sp_executesql @query=@str,

@params= N' @GRP Numeric(15,2) Ouptut',
@GRP=@GRP Output

但似乎我无法以这种方式实现嵌套查询......

有什么建议吗??

提前致谢

4

1 回答 1

1

对于传入的任何局部变量,您需要确保在每一侧添加额外的 '' 以便动态语句在执行时以与此等效的方式结束: where lease = 'value of @Lease' 以您的方式书面是把它变成:其中租约=@Lease的价值

将引发错误,因为与租约进行比较的 varchar 值缺少单引号。

尝试这个:

SET @str = 'Select @GRP= ' + @Field +' 
           from Hist_Tab 
           Where TerminalID in (Select id from newtab where lease='''+@Lease +''')';

exec sp_executesql @query=@str,

@params= N' @GRP Numeric(15,2) Ouptut',
@GRP=@GRP Output
于 2017-02-03T23:22:46.430 回答