Usuário com melhor resposta
Gerar arquivo txt com colunas concatenadas nas linhas

Pergunta
-
Respostas
-
Deleted
- Marcado como Resposta CHARLES.PTU quinta-feira, 21 de fevereiro de 2019 12:04
Todas as Respostas
-
Deleted
- Marcado como Resposta CHARLES.PTU quinta-feira, 21 de fevereiro de 2019 12:04
-
-
Eis solução simples, que utiliza a função nativa CONCAT_WS:
-- código #1 SELECT concat_ws (';', CODCOLIGADA, CODSTATUS, DESCRICAO, CODTIPOCURSO) as CSV from tabela where ...
Outra solução, para versões anteriores ao SQL Server 2017:
-- código #2 SELECT cast (CODCOLIGADA as varchar(12)) + ';' + cast (CODSTATUS as varchar(12)) + ';' + DESCRICAO + ';' + cast (CODTIPOCURSO as varchar(12)) as CSV from tabela where ...
As duas soluções consideram que não há colunas sem informação (NULL).
José Diz Belo Horizonte, MG - Brasil [Linked In] [e-mail] [Porto SQL]
Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
José,
Para este mesmo exemplo que você criou, poderíamos utilizar a função Concat() a partir do SQL Server 2012:
SELECT Concat(CODCOLIGADA,';', CODSTATUS,';', DESCRICAO,';', CODTIPOCURSO) as CSV from tabela where ...
Sem ter a necessidade de realizar conversão explícita.Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-
-
Para este mesmo exemplo que você criou, poderíamos utilizar a função Concat() a partir do SQL Server 2012.
Sim, para SQL Server 2012 (e em diante) fica mais simples usar CONCAT. Assim, o código #2 somente é indicado para versões anteriores a SQL Server 2012.
Se houver possibilidade de coluna sem informação (NULL), também fica mais simples se utilizar a função CONCAT: não é necessário converter para string e nem verificar por NULL. É estranho que as funções CONCAT e CONCAT_WS tenham comportamento diferente quanto ao NULL.
José Diz Belo Horizonte, MG - Brasil [Linked In] [e-mail] [Porto SQL]
Este conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita.
José,
Sim, existe esta diferença, pois a Concat_WS identifica o Null e ignora, não realiza a concatenação, muito menos fazendo uso do separador.
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]
-