ORDER BY repentinamente está en conflicto con la concatenación VARCHAR en TSQL

Tengo un código en Sql Server 2008 que concatena algunas cadenas de una consulta en una variable usando el probado y verdaderoSELECT @VAR = @VAR + FIELD FROM TABLE ORDER BY OTHERFIELD sintaxis.

Este es mi exacto SQL:

SELECT @SQL = @SQL + 
    ISNULL(FORMULA, 
    CASE WHEN USEMAP = 1 THEN 
        'dbo.getFieldTranslation('+CONVERT(VARCHAR,ROWID)+', [' + ISNULL(ENCOMPASSFIELD,'') + '])' 
    ELSE 
        '[' + ISNULL(ENCOMPASSFIELD,'') + ']' END
    ) + 
    ' AS "' + FILECOLNAME + '",' + @CRLF  
FROM dbo.EXPORTMAP_EX 
WHERE WAREHOUSEID = @WHSID 
ORDER BY ORDERIDX

Esto funcionaba muy bien y perfectamente. Entonces, de repente hoy, dejó de funcionar. Solo concatenaba en los valores de la última fila. En la depuración, descubrí que si saco elORDER BY cláusula, luego todos los campos regresan, pero ordenados estrictamente alfabéticamente por el valor de la cadena de los campos.

Sin embargo, este SQL se está utilizando para generar una vista para una exportación. El archivo de exportación debe tener sus campos en el orden correcto, de ahí la cláusula ORDER BY. ¿Por qué el ORDEN POR sirve de repente afiltrar ¿mis resultados?

No puedo usar la ruta XML / STUFF porque algunos de los datos tienen signos <y>.
Prefiero no tener que volver a usar un viejo bucle WHILE, pero es posible que tenga que hacerlo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta