Problema numa consulta sql

10 respostas
fiabani

Amigos, alguem sabe como faço uma consulta do tipo:

select id, name from table where id>30
select id, name from table where id<10

de forma que elas apareçam assim:

id | name | id | name
9 | wilian | 31| sergio

tipo um UNION, só q horizontal, não sei se isso é possível.
obrigado!

10 Respostas

bandrade

select id, name from table where id>30 OR id<10

tipo isso??

fiabani

não é beeem isso, seria assim: vc faz duas consultas diferentes e “solda” os resultados lado-a-lado, sacou?

nbluis

faz com subquerys…
mas pra que diabos tu quer isso ?

F

select (’"’||id||’",’||’"’||name ||’",’||id||’"’) from table

Assim ele ira cocatenar os resultados isso que precisa?

fiabani

estamos desenvolvendo um painel administrativo (o p4pa) e precisamos que seja dessa forma mesmo, já pensei em tudo e não tem outra forma que funcione corretamente.

F

O que você precisa exatamente ? Pelo o que eu entendi você precisa de duas coisa que os resultados sejam exibidos cocatenados ( ID | NOME | ID | NOME ) e que seram selecionados somente ID>30 ou ID<10.

fiabani

sim, é uma concatenação entre colunas, isso é possível?

nbluis

só não sei como vai ordenar isso de maneira que funcione…
mas, plano cartesiano neles (baita gambiarra)

--WorkAround.
SELECT t1.c1, t1.c2, t2.c1, t2.c2
FROM
(
SELECT campo1 c1, campo2 c2
FROM tabela1
) t1, 
(
SELECT campo1 c1, campo2 c2
FROM tabela2
) t2
F

Este codigo SQL concatena as colunas, não sei em termos de performace se é bom mas da uma olhada…

Para cocatenar resultado sql usa o ||

select id || name from table

Este codigo lhe retorna:
001Teste

Caso queira separar por algum caracter so acrescentar entre aspas:

select id || '@' ||name from table

Este codigo lhe retorna:
001@Teste

Pelo o que eu entendi isso deve resolver, lembrando não sei se é a melhor solução.

dev-ailson

Olá pessoal,

Acho q é assim: select id||’’||name from table where id not between 10 and 30.

fiz isso no Oracle 9.2

flw

Criado 14 de janeiro de 2008
Ultima resposta 14 de jan. de 2008
Respostas 10
Participantes 5