Sql 将For Xml和With子句的结果赋值给变量
我尝试使用XML for将一组列连接在一起,然后将结果集分配给一个变量。 我之所以使用“with”子句,是因为我的初始子查询包含计算字段,以后的子查询需要生成其他字段 当我跑的时候,它给我 查找错误-SQL Server数据库错误:关键字“with”附近的语法不正确 是否有可能让它运行,或者我必须重新编写整个查询以不使用“with”子句Sql 将For Xml和With子句的结果赋值给变量,sql,sql-server,Sql,Sql Server,我尝试使用XML for将一组列连接在一起,然后将结果集分配给一个变量。 我之所以使用“with”子句,是因为我的初始子查询包含计算字段,以后的子查询需要生成其他字段 当我跑的时候,它给我 查找错误-SQL Server数据库错误:关键字“with”附近的语法不正确 是否有可能让它运行,或者我必须重新编写整个查询以不使用“with”子句 declare @htmltable varchar(max) set @htmltable = cast( ( with resultse
declare @htmltable varchar(max)
set
@htmltable = cast(
(
with resultset1 as (
select t1.customer_email
from table1 t1
),
resultset2 as (
select t2.email,
rs1.*
from resultset1 rs1
join table2 t2
on rs1.customer_email = t2.email
)
select rs2.customer_email + '</td><td>' + cast(rs2.email as varchar(80)) + '</td><td>'
from resultset2 rs2
for xml path('tr'), type) as varchar(max)
)
我想这是一个语法问题-您应该这样尝试:
DECLARE @htmltable VARCHAR(MAX)
WITH resultset1 AS (
SELECT 'foo' colrs1
),
resultset2 AS (
SELECT 'bar' colrs2, rs1.colrs1
FROM resultset1 rs1
)
SELECT @htmltable = cast(
(
select rs2.colrs2 + '</td><td>' + cast(rs2.colrs2 as varchar(80)) + '</td><td>'
from resultset2 rs2
for xml path('tr'), type) as varchar(max)
)
SELECT @htmltable