Olá, estou com um problema grande para resolver e gostaria de uma ajuda. Segue o problema. Existe uma tabela chamada "produtos", onde contem os campos (quantidade, situacao). Logico que contem mais campos porem o probme aestá com estes dois (quantidade, situacao) na hora de ordenar. Vamos ao principal. * Campo (quantidade): Inteiro que recebe a quantidade de produtos. * Campo (situacao): Inteiro que recebe (0) para produtos em prevenda (1) para produtos sob-encomenda e (2) para produtos com estoque normal. Ai que está problema, na ordenação que preciso, que por vez seria esta: 1) Primeiramente aparecer todos os produtos que está na situação (2 - estoque normal por data descrecente), porem apenas os que tem mais que 0 no campo quantidade. 2) Aparecer após os produtos com situação (0 - produtos em prevenda por data descrecente) 3) Aparecer produtos para com situação (1 - produtos sub-encomenda). É esse o problema, preciso jogar todos produtos esgotados por final, porem se der um Order By primeiramente no campo quantidde, irá aparecer no meio os produtos de situação diferentes. Pensei em fazer isso: Select * From produtos Order By situacao=2 DESC, produto.situacao=0 DESC, produto.situacao=1 DESC, data_prevenda ASC O problema é que quando jogo (produto.situacao=2) ele mostrará todos produtos com situação 2, inclusive os que tem quantidde 0. Então a duvida maior seria em como jogar todos produtos que está com quantidade 0 por ultimo, mas tem que aparecer primeiros os produtos que tem quantidade maior que 0 e ordenado pela sitação. Seria amis ou menos isso na teria, mas seiq ue não da pra usar Where dentro do order by: ... Order By situacao=2 (where quantidade > 0), situacao=0 (where quantidade > 0) ... Alguém pode me dar uma luz, pois ta complicado. Agradeço a atenção de todos. Rodrigo.