Questione : Oracle 9i SQL decodifica

Ciao, la prova del

I scrive uno SQL basato sulla seguente circostanza: il

select
a.id, f_name del
a.col2, L-nome del
b.col3,
c.v_date date_1,
decode (a.cat, “007„, 'wbr/>, “008„, “second„ del first'<, '') come
from a, b, c del cat_type
.....,… cambiamento che del

The del
where
...... voglio fare sullo SQL di cui sopra è: il

If lo SQL di cui sopra restituisce appena un'annotazione per “in primo luogo„ ed una per “in secondo luogo„, voglio visualizzare soltanto l'annotazione che contiene “in primo luogo„, questo che posso ottenere vicino using la funzione MINIMA nel decodifica, che è:
min (decodificare (a.cat, “007„, “first„, '008 ' , “in secondo luogo„, '')) come cat_type, otterrò appena l'annotazione che contiene “in primo luogo„.
But, se rinvia, più di un'annotazione per “la prima„ o “in secondo luogo„ allora dovrebbe restituire come esso is.
For per esempio: del
del del del del in secondo luogo 02/28/2010
in secondo luogo 03/20/2010
1 john del primo 02/01/2010
1 john del cat_type date_1
1 john del
ID F_Name L_Name dello smith primo 14/04/2010
1 john dello smith primo 01/19/2010
1 john dello smith dello smith in secondo luogo 05/03/2010
2 .......................... del ..... del
.......................... del ..... del
.......................... del ..... del
or

ID F_Name L_Name del cat_type date_1
1 john dello smith primo 02/14/2010
1 john dello smith in secondo luogo 04/16/2010
1 john dello smith in secondo luogo 02/19/2010
.......................... del ..... del
.......................... del ..... del
del or

ID F_Name L_Name del cat_type date_1
1 john dello smith primo 02/17/2010
1 john smith dello smith .......................... .......... .......... .......... ...... ...............................

so sopra così avanti. il

I vuole fare qualcosa come: il

(CASO QUANDO ((a.cat = “007„ E CONTEGGIO (a.cat) > 1)
O (a.cat = “008„ E CONTEGGIO (a.cat) > 1)) THEN
decodifica (a.cat, “007„, 'wbr/>, “008„, “second„ del first'<, '') il
END
di minuto del
(decodificare (a.cat, “007„, “first„, '008 ' , “in secondo luogo„, ''))) come cat_type

But che questo non sta funzionando correttamente. il
Can qualcuno suggerisce un metodo per risolvere questo?

Thanks@
class= > " libero " del
soluzioni >Related class= href= " /Database/Oracle/9.x/Q_26324081.html " title= " Oracle SQL di Oracle SQL " del qRelatedChild " " del class= NON di CLAUSOLA -- DOVE NON CLAUSE

Risposta : Oracle 9i SQL decodifica

per renderlo ancor più semplice, tutto che abbiate bisogno di è il sotto io pensa. Fornisce gli stessi risultati secondo le indicazioni dello screenshat che già ho attaccato. non abbiamo bisogno del gruppo dell'aggiunta ecc…

Provare questo e scegliere che volete mai.

selezionare *
da (
          SELEZIONARE X.*,
          CONTEGGIO (DECODIFICARE (X.C_TYPE, “PRIMARIO„, 1, posizione di segnale minimo)) SOPRA (DIVISORIO DA X.ID) PRIM_CNT,
          CONTEGGIO (DECODIFICARE (X.C_TYPE, “INIZIALE„, 1, posizione di segnale minimo)) SOPRA (DIVISORIO DA X.ID) INIT_CNT
                          DA
                                (T1.ID PRESCELTO, T1.NAME, T1.DESCRP, t2.c_desc,
                                decodificare (T2.C_ID, “007„, “PRIMARIO„, “008„, “INIZIALE„, '') come C_TYPE
                                Dal T1 della PROVA, T2 TEST2
                                DOVE
                                T1.ID = T2.ID
                                ) X
          gruppo da x.ID, da x.NAME, da x.DESCRP, da x.c_desc, da x.C_TYPE) A
dove non (a.prim_cnt =1 e a.init_cnt = 1 e c_type='PRIMARY)

Grazie
Altre soluzioni  
 
programming4us programming4us