I’m trying to use XML for to concatenate a bunch of columns together and then assign the result set to a variable. I’m using ‘with’ clauses because my initial sub-queries contain calculated fields that later sub-queries need to generate additional fields.
When I run it gives
Lookup Error – SQL Server Database Error: Incorrect syntax near the keyword ‘with’.
Is it possible to get this to run, or do I have to re-write my whole query to not use ‘with’ clauses?
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)
)
Advertisement
Answer
I guess it’s a syntax matter – you should try like so:
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