如何在子查询中使用Coalesce进行字符串连接?

我正在尝试使用“Coalesce”从一个表连接多个行值,用逗号分隔并将其列为子查询中的列。 沿途的东西
Declare @assignTo nvarchar(4000)

Select 
table1.columnA
table1.columnB
(
select @assignTo = Coalesce(@assignTo + ', ', '') + CAST(Name as nvarchar(250))
from
table2    
where
...
)
from table1
where
..... 我一直得到“'='附近的语法错误。” 如果我只是尝试执行调用Coalesce函数的子查询,那就很好。即
 Declare @assignTo nvarchar(4000) 
 select @assignTo = Coalesce(@assignTo + ', ', '') + CAST(Name as nvarchar(250))
    from
    table2    
    where
    ...
  Select @assignTo
没关系。所以我的问题是,如何将其作为子查询包含在内? 非常感谢 ps:这是SQL Server 2000特有的。     
已邀请:
您不能将其包含为子查询:您必须将其移动到UDF中。 在SQL Server 2005中,您可以使用XML PATH技术。但是对于SQL Server 2000,您必须有一个单独的标量UDF,其中包含表访问和连接     
我所知道的, 如果你更喜欢SubQuery,你可以这样做。 但上述解决方案是最方便的解决方案。
Declare @assignTo nvarchar(4000)

Select 
table1.columnA
table1.columnB
tmp.[c]
from table1,
     (
      select @assignTo = Coalesce(@assignTo + ', ', '') + CAST(Name as nvarchar(250)) as [c]
      from
      table2    
      where
      ...
      ) as tmp
where
希望它有效!     

要回复问题请先登录注册