none
ordenar consulta RRS feed

  • Pergunta

  • Olá pessoal, estou precisando ordenar uma consulta na seguinte ordem:

    1)o campo que eu digitei;

    2)continuar em ordem alfabética;

    EX:

    set @valor ='%coca%'

    set @valor2='coca'

    SELECT Codigo,Descricao,ValorVarejo,Tributacao,Unidade,

    FROM dbo.produtos

    WHERE ((Descricao LIKE @VALOR)OR(Codigo LIKE @VALOR))

    ORDER BY CHARINDEX(@VALOR2,Descricao)

    O resultado ideal seria:

    cocacola

    cocada

    cocaina

    etc:

    tem como fazer?

    segunda-feira, 29 de abril de 2013 21:14

Respostas

Todas as Respostas

  • Olá,


    Claro que sim!

    Experimenta o seguinte:


    DECLARE @valor VARCHAR(20);
    SET @valor ='%coca%';
    
    -- À partida não precisas da variavel @valor2
    set @valor2='coca'
    
    SELECT Codigo,Descricao,ValorVarejo,Tributacao,Unidade, CASE WHEN (Descricao LIKE @VALOR)OR(Codigo LIKE @VALOR) THEN 1 ELSE 0 END AS Ordem
    FROM dbo.produtos
    ORDER BY Ordem DESC, Codigo, Descricao
    -- O Segredo:
    -- 1) Criar uma forma de ordenar (para tal usei um campo "calculado" com o nome de Ordem
    -- 2) Ordenar por esse campo e depois pelos restantes

    Espero ter ajudado,


    Pedro Martins
    Portugal
    https://www.linkedin.com/in/rechousa

    segunda-feira, 29 de abril de 2013 21:24
  • Deleted
    segunda-feira, 29 de abril de 2013 23:11