2011-05-24 18 views
5

Tengo el siguiente fragmento de códigocómo utilizar SQL para XML Path ('') pero retienen carro vuelve

select 
    (
    select cast(Narrative as Varchar(max)) + char(13) 
    from officeclientledger 
    where ptmatter=$matter$ and ptTrans=4 
    for xml path (''), type 
    ) 

que entregan resultados como:

Cwm Taf NHS Trust registros médicos ; Dr Purby registros médicos ; (excluyendo espacios, necesaria para insertar el propósito de hacer la pregunta) Sin embargo

, hay una manera de producir los resultados como

Cwm Taf NHS Trust registros médicos

Dr Purby registros médicos

+0

¿Quieres el retorno carrige que se prestarán en el cuadrícula de resultados, o al copiar y pegar el texto en [editor de texto aquí]? –

+1

estoy usando esta porción de código directamente en una combinación de correo de palabras (un poco hacky lo sé), por lo que no hay una fase de copiar/pegar. pero para ser sincero, no estoy muy seguro de que –

Respuesta

7

Esto no puede ser hecho usando los resultados para la funcionalidad de la grilla en SSMS. Sin embargo, si usa la opción de resultados para texto y reemplaza su CHAR (13) con CHAR (10), obtendrá los resultados deseados.

+0

vivas @ Quickfire55 - cahing CHAR (13) con CHAR (10) funcionó :) –

+0

También cuando lo configuraste en Resultados para enviar mensajes de texto, no olvides extender el 'Número máximo de caracteres mostrados en cada configuración de columna en Herramientas -> Opciones -> Resultados de consulta -> Servidor SQL -> Resultados a texto. Se establece en 256 de forma predeterminada en 2008R2 como mínimo. –

4

Estoy llegando al mismo problema y no puedo usar Char (10) porque el sistema receptor espera Char (13). Entonces utilicé la consulta siguiente para reemplazar el valor en mi resultado y funcionó.

SELECT Coloumn = REPLACE(@v_Get_UPC_List, '
', CHAR(13)) 
0

Cuando tengo que usar SSMS y quieren ver los valores como la solicitada, para las pruebas, yo uso el comando de impresión.

IF OBJECT_ID ('tempdb..#doc') IS NOT NULL DROP TABLE #doc; 
declare @doc varchar(max); 

create table #doc (DOC varchar(max)); 
    insert into #doc EXECUTE db.[spDocumentJob] 1 

SELECT @doc = STUFF(
    (SELECT ' ' + DOC + ' ' + CHAR(13) + CHAR(10) 
     FROM #doc As T2 
     ORDER BY DOC 
     FOR XML PATH (''), TYPE).value('.','varchar(max)'),1,1,'') 
print @doc 

enter image description here

Cuestiones relacionadas