【发布时间】:2011-01-28 12:41:01
【问题描述】:
我有一个相当复杂的查询,它将动态构建并保存在一个变量中。
作为第二部分,我有另一个 普通 查询,我想在这两者之间进行内部连接。
为了让这里更容易一点,这里有一个小例子来说明我的问题。
对于这个小例子,我使用了AdventureWorks database。
一些查询是动态建立的
(是的,我知道这里没有动态,因为这只是一个示例。)
DECLARE @query AS varchar(max) ;
set @query = '
select
HumanResources.Employee.EmployeeID
,HumanResources.Employee.LoginID
,HumanResources.Employee.Title
,HumanResources.EmployeeAddress.AddressID
from
HumanResources.Employee
inner join HumanResources.EmployeeAddress
on HumanResources.Employee.EmployeeID = HumanResources.EmployeeAddress.EmployeeID
;';
EXEC (@query);
我的正常查询
select
Person.Address.AddressID
,Person.Address.City
from
Person.Address
也许我想拥有但没用的东西
select
@query.*
,Addresses.City
from
@query as Employees
inner join
(
select
Person.Address.AddressID
,Person.Address.City
from
Person.Address
) as Addresses
on Employees.AddressID = Addresses.AddressID
【问题讨论】:
-
我认为您可以通过以下任一答案来解决它
-
@Mitch:仔细看看最后一个代码sn-p的标题。 ;-)
标签: sql sql-server sql-server-2005 tsql dynamic-sql