Gere o resultado de uma query em uma linha única separado por string TSQL

20/06/2014 13:59

 

Este script mostra como gerar um resultado único separado por "|" pipe, substitua a tabela temporária pela sua tabela de trabalho e referencie a coluna correta:
 
 
Query Exemplo (Base):
=======================
SELECT
      CD_USUARIO
FROM 
      (SELECT CD_USUARIO = '12345678', DESCR = 'TESTE 1'
  UNION
  SELECT CD_USUARIO = '12345678', DESCR = 'TESTE 2') S
 
 
 
Example 1: Compatível a partir da versão do SQL 2000
=======================================================
 
DECLARE @RESULT VARCHAR(max)
 
SELECT
      @RESULT = COALESCE(@RESULT + '| ', '') + CD_USUARIO
FROM 
      (SELECT CD_USUARIO = '12345678', DESCR = 'TESTE 1'
  UNION
  SELECT CD_USUARIO = '12345678', DESCR = 'TESTE 2') S
 
SELECT @RESULT
 
 
Example 2: Compatível a partir da versão do SQL 2005
=======================================================
 
SELECT
      CD_USUARIO + '|' 
FROM 
      (SELECT CD_USUARIO = '12345678', DESCR = 'TESTE 1'
  UNION
  SELECT CD_USUARIO = '12345678', DESCR = 'TESTE 2') S
FOR xml path('')