Estoy tratando de escribir el siguiente SQL.No se puede asignar el resultado CTE a una variable varchar?
declare @s varchar(max) = (
with c as (select ...)
select a, b, c, d, ....
from ... join c on .... join c on .... join c on ....
order by ...
for xml raw('...'), elements
);
Sin embargo, es una sintaxis incorrecta (continuación se muestra el mensaje de error). ¿Debo convertirlo a subconsultas? Estoy tratando de evitar expandir el CTE en múltiples lugares.
Sintaxis incorrecta cerca de la palabra clave 'con'. Si esta instrucción es una expresión de tabla común, una cláusula xmlnamespaces o una cláusula de contexto de seguimiento de cambios, la instrucción anterior debe terminarse con un punto y coma.
Actualización:
El for xml
y order by
hace select @s = ...
Parece familiar ... –
@Abe - _ "el secreto de la originalidad es olvidar la fuente" _ +1 a su respuesta. –