UNION ORACLE - UNIONE DI DUE SELECT SENZA ORDER BY

martedì 11 dicembre 2012 - 20.07
Tag Elenco Tags  C#  |  Oracle 11g  |  Oracle 10g  |  Oracle 9g  |  Oracle 8g

milena Profilo | Newbie

..Ho necessità di ordinare il risultato di un query in base ad un determinato valore di un campo.
Mi spiego meglio, i record che hanno una determinata colonna uguale ad un certo valore devono essere visualizzati per primi dopo i restanti.
Ho provato a fare:
1) una query che mi visualizzia tutti i record che soddisfano la mia condizione,
2) union con una query che mi visualizzia tutti gli altri record che non soddisfano la condizione.
P urtroppo la union unisce ed ordina e quindi sono al punto di partenza. Come fare.(in pratica se la union funzionasse senza fare il merge delle due query andrebbe bene)

micto27 Profilo | Senior Member

>..Ho necessità di ordinare il risultato di un query in base ad
>un determinato valore di un campo.
>Mi spiego meglio, i record che hanno una determinata colonna
>uguale ad un certo valore devono essere visualizzati per primi
>dopo i restanti.
>Ho provato a fare:
>1) una query che mi visualizzia tutti i record che soddisfano
>la mia condizione,
>2) union con una query che mi visualizzia tutti gli altri record
>che non soddisfano la condizione.
>P urtroppo la union unisce ed ordina e quindi sono al punto di
>partenza. Come fare.(in pratica se la union funzionasse senza
>fare il merge delle due query andrebbe bene)

Ciao,

visto che gli insiemi che tratti sono mutualmente esclusivi,
utilizza UNION ALL anzichè UNION, così il risultato è la somma
dei 2 risultati.
Come esempio puoi provare con queste 2 semplici queries:

select 'a' as "UNION" from dual union select 'c' from dual union select 'b' from dual union select 'e' from dual union select 'd' from dual; select 'a' as "UNION ALL" from dual union all select 'c' from dual union all select 'b' from dual union all select 'e' from dual union all select 'd' from dual;

ciao, Michele

renarig Profilo | Expert

>Mi spiego meglio, i record che hanno una determinata colonna
>uguale ad un certo valore devono essere visualizzati per primi
>dopo i restanti.


Io non userei Union


Farei un campo calcolato che restituisce 1 oppure 2
nel caso la condizione sia rispettata o no



Poi ordini su quel campo calcolato


.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5