2017-08-22 1 views
-2

Ich habe zwei Tabellen. Ich möchte eine Ansicht erstellen. Ich habe eine Abfrage geschrieben, welche die zweite Tabelle des Wertes durch den korrekten Namen ersetzt.Es gibt viele Null-Wert bei Oracle Case

S_ID | STATION_NAME 
------ | ------ 
1  | PACKAGER1 
2  | PACKAGER2 
3  | PACKAGER3 
4  | PACKAGER4 
5  | PACKAGER5 
6  | PACKAGER6 
7  | PACKAGER7 

C_ID | STATION_ID | TO_STATION_ID 
------ | -----------| ------------- 
1  | 1   | 7 
2  | 2   | 7 
3  | 3   | 7 
4  | 4   | 7 
5  | 5   | 7 
6  | 6   | 7 
7  | 7   | 1 
7  | 7   | 2 
7  | 7   | 3 
7  | 7   | 4 
7  | 7   | 5 
7  | 7   | 6 

SELECT CC.STATION_ID AS NUM, 
     CASE WHEN CC.STATION_ID = S.S_ID THEN S.STATION_NAME END 
     AS "FROM STATION" 
FROM CONNECTION CC, 
     STATIONS S 

Die Ersetzung funktioniert ordnungsgemäß, aber erstellt eine Menge anderer Zelle mit Nullwert. In allen 12 * 7 = 82. Wie kann ich diesen Fall überspringen, wenn der zwei Wert nicht gleich ist?

NUM | FROM_STATION 
------ | ------ 
1  | PACKAGER1 
2  | null 
3  | null 
4  | null 
5  | null 
6  | null 
7  | null 

Ich möchte dieses Ergebnis erhalten:

NUM | FROM_STATION | TO_STATION 
------ | ------------ | ---------- 
1  | PACKAGER1 | Packager7 
2  | PACKAGER2 | Packager7 
3  | PACKAGER3 | Packager7 
4  | PACKAGER4 | Packager7 
5  | PACKAGER5 | Packager7 
6  | PACKAGER6 | Packager7 
7  | PACKAGER7 | Packager1 
8  | PACKAGER7 | Packager2 
9  | PACKAGER7 | Packager3 
10  | PACKAGER7 | Packager4 
11  | PACKAGER7 | Packager5 
12  | PACKAGER7 | Packager6 
+0

hoffe, dass Sie brauchen, was Gordon Linoff antwortete. Bitte beziehen Sie sich auf diesen Link, https://www.techonthenet.com/oracle/joins.php Hoffe, das wird Ihnen einige Ideen geben. – vipin

Antwort

1

Was Sie wollen, scheinen zu tun und Ihre Abfrage nichts mit ihnen zu tun. Erstens, niemals Kommas in der FROM Klausel verwenden. Immer verwenden Sie die richtige, explizite JOIN Syntax.

Zweitens sehe ich nicht, was die CASE ist. Ich vermute, dass Sie eine Abfrage wie folgt haben möchten:

Zumindest scheint dies etwas Nützliches zu tun.

+0

Ich ändere die Tabelle und ich schrieb bis zum Ende meine endgültige Erwartung – Alex