Vraag : Unie

Is er om het even welke truc om een exploitant van de UNIE om deze twee vragen de TE ELIMINEREN te combineren en te gebruiken DUPLICATEN als de waarden in de eerste drie kolommen het zelfde maar verschillend zijn, in column4?

select 'a' column1, 'b' column2, „c“ column3, „neemt nota van 1“ column4 van dual
union all
select 'a' column1, 'b' column2, „c“ column3, „neem nota van 2“ column4 van dual

result:
a B van de c- Nota 1
a B c- Nota 2

Need om het eerste verslag slechts te worden en 2de te negeren:
a B c- Nota 1

Antwoord : Unie

geef elke vraag een proefkolom die het uniek identificeert
en dan gebruik row_number om enkel de eerste waarde te plukken


SELECTEER column1, column2, column3, column4
VAN (UITGEZOCHTE x.*, ORDE ROW_NUMBER () OVER (VERDELING DOOR column1, column2, column3 DOOR model) RN
VAN (SELECTEER 1 model, neemt nota 'a' column1, 'b' column2, „c“ column3, „van 1“ column4 VAN DUBBEL
UNIE ALLEN
SELECTEER 2 model, 'a' column1, 'b' column2, „c“ column3, „neem nota van 2“ column4 VAN DUBBEL) x)
WAAR RN = 1

Andere oplossingen  
 
programming4us programming4us