Order By nao funciona

2 respostas
fabioebner
Pessoal tenho o seguinte Metodo:
public Result getVotacao() {
        Collection toReturn = new ArrayList();
        ResultSet rs = null;
        try {
            Connection conexao = Conexao.getInstancia().conectarDb();
            PreparedStatement st = conexao.prepareStatement("SELECT tb_pessoa.nm_pessoa, tb_bairro.nm_bairro, tb_zona.nr_zona, tb_vila_jardim_bairro.nm_vila_jardim, vl_votacao_candidato FROM tb_votacao JOIN tb_pessoa ON tb_pessoa.cd_pessoa = tb_votacao.cd_pessoa JOIN tb_vila_jardim_bairro ON tb_vila_jardim_bairro.cd_vila_jardim = tb_votacao.cd_vila_jardim JOIN tb_bairro ON tb_bairro.cd_bairro = tb_vila_jardim_bairro.cd_bairro JOIN tb_zona ON tb_zona.cd_zona = tb_bairro.cd_zona ORDER BY ? ASC");
            st.setString(1, ordenacao);
            System.out.println(st.toString());            
            rs = st.executeQuery();
            
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        return  ResultSupport.toResult(rs);
    }

pq o meu ORDER BY nao funciona?? qualquer campo q eu coloque la..ele nao altera a ordem dos registros.. sendo q eu mando imprimir no console o sql, se eu pegar ele e jogar direto no banco ele funciona normalmente..

estou usando postgresql

obrigado

OBS estou testando aqui.. eu coloquei uma tabela q nao existe para ele me ordenar e ele mesmo assim me retornou registro nao deu erro..

2 Respostas

Dieval_Guizelini

Fabio,

duas coisas que você precisa verificar:

  1. qual o conteúdo de ordenacao? (você passa o alias “ponto” campo?)

  2. eu não tenho certeza, mas acredito que quando se utiliza o setString no preparedStatement ele inclui o conteúdo entre aspas o que não permitiria a ordenação. Tente fazer uma concatenação simples.

fw

fabioebner

valeu cara… era a segunda opcao

Criado 22 de janeiro de 2008
Ultima resposta 22 de jan. de 2008
Respostas 2
Participantes 2