FabianoSouza 5 Denunciar post Postado Agosto 1, 2019 Vou dividir meu problema em duas etapas para facilitar o entendimento. ETAPA 1 Tenho uns 18 campos booleanos no meu select. Preciso tratar esses campos para sair um texto mais compreensível. Para isso geralmente uso CASE WHEN. Exemplo: CASE WHEN valeTransp = '1' Then 'Vale-transporte' WHEN valeTransp = '0' Then '' END AS 'vt' Minha primeira dúvida é saber se há uma forma mais prática de se fazer esse tipo de tratamento. Pois são 18 campos!! É muita coisa pra fazer CASE WHEN. ETAPA 2 Feito o tratamento dos campos, preciso criar uma string com um separador, contendo todas as saídas do tratamento dado acima. Quero que fique algo como: "Vale-transporte, Vale-refeição, Assistência médica, Seguro de vida". (pode sair em formato JSON também) Como resolvo essa bronca?? Valew! Compartilhar este post Link para o post Compartilhar em outros sites
Marcos Roberto Vieira Juni 0 Denunciar post Postado Agosto 21, 2019 Bom dia, vejo algumas soluções. Case when como está fazendo. Usar um pivot, segue exemplo: SELECT idioma,([1] + [2] + [3]) as TOTAL ,[1] AS 'Básico', [2] AS 'Intermediário',[3] AS 'Avançado' FROM (SELECT idioma,Cod_idioma,Fluencia FROM @table) U PIVOT (COUNT(Cod_idioma) FOR Fluencia IN ([1],[2],[3]) ) P Ou na minha opinião algo mais simples criar uma tabela e relacionar: Exemplo: CREATE TABLE dbo.Auxiliares( id int identity(1,1) primary key, cod_vt int , nome_vt varchar(50), cod_vr int, nome_vr varchar(50) ) -- Faz o inner join dos codigos e usa o campo texto na sua consulta. Compartilhar este post Link para o post Compartilhar em outros sites