2012-07-09 79 views
0

我想用动态查询实现嵌套查询。SQL Server中的动态查询中的嵌套查询

我已经试过这样的事情:

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

exec sp_executesql @[email protected], 

@params= N' @GRP Numeric(15,2) Ouptut', 
@[email protected] Output 

但似乎我无法实现嵌套查询这样...

任何建议?

在此先感谢

+2

'Ouptut'应该是'Output'。 – 2012-07-09 11:49:37

+1

为什么看起来*我无法以这种方式实现嵌套查询* - 你会得到一个错误吗?如果是这样的话:**这是什么错误?!**请发布完整的,完整的错误信息,以便我们能够真正理解发生了什么...... – 2012-07-09 13:19:56

+0

你能告诉我们什么'@ str'包含后分配的 – 2012-07-09 14:19:25

回答

1

为你传递的任何局部变量需要确保你在每一侧增加额外的',这样的动态语句与此同时,相当于执行结束: 其中租赁= 已将其编写方式“@Lease的价值”被正在转向到这一点: 在由于VARCHAR值进行比较,以租赁@Lease

租赁=值将抛出一个错误,缺少单引号。

试试这个:

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

exec sp_executesql @[email protected], 

@params= N' @GRP Numeric(15,2) Ouptut', 
@[email protected] Output