Roni Warken wrote:

> Obrigado Reimer pela dica. Desde já desculpas pela demora em 
> responder. Tive alguns sérios problemas para resolver
>
> Voltando ao assunto, continua dando um erro. Agora o erro é:
>
> ERROR: Attribute "nome_servico" not found
>
> Não sei mais o que fazer, afinal não consegui descobrir qualquer 
> função que pudesse utilizar, para ordenar duas tabelas, campos com 
> caracteres acentuados inclusive.
>
O ORDER BY 'exige' que uma coluna 'conhecida' seja indicada. Por isso 
aquele abaixo. Uma truque para contornar isso é colocar o to_ascii() em 
uma das colunas de retorno e criar um alias para ele, ordenando por este 
último. Um dia o 'parser' irá 'entender' esse tipo de consulta. :)

Utilize o seguinte:
regression=# select * from a;
 id |  name  
----+---------
  1 | test
  2 | abcd
  3 | testing
(3 registros)

regression=# select * from b;
 cod |  nome  
-----+---------
   1 | adriano
   2 | vanessa
   3 | claudia
   4 | claudio
(4 registros)

regression=# (select id,to_ascii(name, 'latin1') as x from a) union 
(select cod,to_ascii(nome, 'latin1') from b) order by x asc;
 id |    x   
----+---------
  2 | abcd
  1 | adriano
  3 | claudia
  4 | claudio
  1 | test
  3 | testing
  2 | vanessa
(7 registros)

regression=#

-- 
Euler Taveira de Oliveira

_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a