Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

Select com LIKE e CASE

$
0
0

Em minha consulta uso o CASE e concatenação de texto com um campo (trecho em Azul).
O objetivo é construir uma mensagem final amigável. Mas preciso que o resultado disso seja "pesquisável" usando LIKE.

SELECT
 AcoesPreferenciais.Id, AcoesPreferenciais.CodigoServico, 
 AcoesPreferenciais.ModoDeArmazenamento, AcoesPreferenciais.CodigoProprietario, 
 AcoesPreferenciais.DataCad, ServicoAlias,  BD.dbo.Servico.ServicoIcone, 
 BD.dbo.Servico.ServicoPasta, FuncionalidadesDeServico.Descricao, 

 (CASE WHEN BD.dbo.FuncionalidadesDeServico.CodigoComandoDeServico = '1' 
 THEN 'Criar item em ' + ServicoAlias 
 ELSE 
 CASE WHEN BD.dbo.FuncionalidadesDeServico.CodigoComandoDeServico = '4' 
 THEN 'Ir para ' + ServicoAlias 
 ELSE
 CASE WHEN BD.dbo.FuncionalidadesDeServico.CodigoComandoDeServico = '5' 
 THEN 'Ver dados em ' + ServicoAlias
 END END END)  AS Msg ,  
 BD.dbo.FuncionalidadesDeServico.Pagina

 FROM 
 AcoesPreferenciais 
 INNER JOIN
 BD.dbo.FuncionalidadesDeServico 
 ON 
 AcoesPreferenciais.CodigoAreaDoServico 
 = 
 BD.dbo.FuncionalidadesDeServico.CodigoComandoDeServico 
 AND 
 AcoesPreferenciais.CodigoServico 
 = 
 BD.dbo.FuncionalidadesDeServico.CodigoServico 
 INNER JOIN 
 BD.dbo.Servico 
 ON 
 BD.dbo.FuncionalidadesDeServico.CodigoServico 
 = 
 BD.dbo.Servico.ServicoCod 
 WHERE 
 (AcoesPreferenciais.ModoDeArmazenamento = 'True') 
 AND 
 (AcoesPreferenciais.CodigoProprietario = 'id') 
 AND 
 ((BD.dbo.FuncionalidadesDeServico.CodigoComandoDeServico = 1)  
 OR 
 (BD.dbo.FuncionalidadesDeServico.CodigoComandoDeServico = 4)
 OR 
 (BD.dbo.FuncionalidadesDeServico.CodigoComandoDeServico = 5))
 AND (Msg LIKE '%string_de_pesquisa%') 
ORDER BY Msg

Preciso fazer com que o LIKE funcione para pesquisar pelo "pseudo campo" Msg.

Da forma que está acima, não funciona.

Como faço?
 

Obrigado.


Viewing all articles
Browse latest Browse all 14190