Frage : Nur Reihen zurückbringen, die zusammenpassen

Ich möchte alle Reihen zurückbringen, wenn ein assignment_id nicht eingeführtes
If, das ein Wert eingeführt wird, nur Rückkehr die Reihen ist, die das eingeführte assignment_id value
With das folgende Fragenkonstruieren, wenn ein assignment_id Wert eingeführt wird, es Rückkehr die Reihen zusammenbringen, die das eingeführte assignment_id und die auch Reihen zusammenbringt, die ein ungültiges assignment_id haben. Wie ich kann, die Frage konstruieren, um nur die Reihen zurückzubringen, die den eingeführten Wert zusammenbringt, oder wenn Null oder eingeführte Rückkehr alles Personal ist.  Wir verwenden ein fuction, um eine Wildcard zurückzubringen, wenn eingeführt wird.

SELECT EINDEUTIGES emp_id,
p.emp_name,
p.ssn,
p.last_reviewed_date up_to_date,
p.dept,
cpp.assignment,
cpp.assignment_id
vom INNEREN personnel_vw p
SCHLIESSEN sich access_check_vw vw
AUF p.dept_id = vw.dept_id
an UND p.dept wie '%VEHICLE2%'< Br/> UND p.active = 'Y'< Br/> UND (p.emp_status = „DAUERHAFTES“ und p.assignment_type = „VERKÄUFE ")
UND vw.pw_id = '111 ' das INNERE
SCHLIESSEN sich chk_per_unit_vw cpu
AUF p.emp_id = cpu.emp_id
UND cpu.unit_id WIE get_decode_null an („") -- Funktion - wenn zu % decodiert, wenn nicht, zum eingeführten GELASSENEN value
sich ANSCHLIESSEN chk_per_assignments_vw cpp
AUF p.emp_id = cpp.emp_id
UND nvl decodieren (cpp.assignment_id, „%") WIE get_decode_all („10930“) -- Funktion - wenn zu % decodiert, wenn nicht zum eingeführten value
decodiert

Antwort : Nur Reihen zurückbringen, die zusammenpassen

Ich denke, dass ich verstehe, was Sie nachher sind.  Sehen, wenn dieses hilft.

Es durchgeführt ganz using SQL*Plus hrt.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
Bereinigung der Tropfentabelle tab1;
Tabelle tab1 (col1 varchar2, herstellen (10));

in Werte tab1 einsetzen („hallo ");
in Werte tab1 („Welt ") einsetzen;
festlegen;


var myVar varchar2 (10)
--eingeführtes will
exec: myVar: = will';
* von tab1 vorwählen, in dem col1 mögen „%“ || decodieren (: myVar, '', Null: myVar) || „%“;

--eingeführte Null
exec: myVar: = Null;
* von tab1 vorwählen, in dem col1 mögen „%“ || decodieren (: myVar, '', Null: myVar) || „%“;


--hereingekommen ''
exec: myVar: = '';
* von tab1 vorwählen, in dem col1 mögen „%“ || decodieren (: myVar, '', Null: myVar) || „%“;
Weitere Lösungen  
 
programming4us programming4us