Questione : Restituire soltanto le file che abbinano

Vorrei restituire tutte le file se un assignment_id non è
If che un valore è inserito, solo ritorno le file che abbinano il value
With del assignment_id la seguente costruzione di domanda, se un valore del assignment_id è inserito, esso ritorno le file che abbina il assignment_id ed anche le file inseriti che hanno un assignment_id nullo. Come posso costruire la domanda per restituire soltanto le file che abbina il valore inserito o se la posizione di segnale minimo o il è ritorno inserito tutto il personale.  Usiamo un fuction per restituire un carattere sostitutivo se il è inserito. il emp_id DISTINTO del

SELECT, il
p.emp_name, il
p.ssn, il up_to_date del
p.last_reviewed_date, il
p.dept, il
cpp.assignment, il
cpp.assignment_id
dal p
del personnel_vw INTERNO UNISCE il vw
del access_check_vw SU p.dept_id = vw.dept_id
E p.dept come 'il Br/> E p.active di %VEHICLE2%'< = 'Br/> del Y'< E (p.emp_status = “PERMANENT„ e p.assignment_type = “VENDITE ")
E vw.pw_id = '111 ' il
INTERNO UNISCONO il cpu
del chk_per_unit_vw SU
E cpu.unit_id di cpu.emp_id = di p.emp_id COME get_decode_null (“") -- Funzione - se il decodifica a %, se non, decodifica al value
LASCIATO UNISCONO il cpp
del chk_per_assignments_vw SU
di cpp.emp_id = di p.emp_id E nvl (cpp.assignment_id, “%") COME get_decode_all (“10930„) -- Funzione - se il decodifica a %, se non decodifica al value
inserito class= del

Risposta : Restituire soltanto le file che abbinano

Penso che capisca che cosa siete dopo.  Vedere se questo aiuta.

Interamente è stato eseguito using SQL*Plus.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
eliminazione dei fogli inceppati della tabella tab1 di goccia;
generare la tabella tab1 (col1 varchar2 (10));

inserire nei valori tab1 (“ciao ");
inserire tab1 nei valori (“mondo ");
commettere;


varietà varchar2 myVar (10)
--will inserito
exec: myVar: = will';
selezionare * a partire da tab1 dove col1 gradicono “%„ || decodificare (: myVar, '', posizione di segnale minimo: myVar) || “%„;

--posizione di segnale minimo inserita
exec: myVar: = posizione di segnale minimo;
selezionare * a partire da tab1 dove col1 gradicono “%„ || decodificare (: myVar, '', posizione di segnale minimo: myVar) || “%„;


--entrato ''
exec: myVar: = '';
selezionare * a partire da tab1 dove col1 gradicono “%„ || decodificare (: myVar, '', posizione di segnale minimo: myVar) || “%„;
Altre soluzioni  
 
programming4us programming4us