2017-08-22 59 views
-2

我有兩個表。我想創建一個視圖。我寫了一個查詢,用正確的名稱替換了第二個表的值。甲骨文有很多空值

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 

替換工作正常,但創建了很多其他空值的單元格。全部12 * 7 = 82。如果兩個值不相等,我如何跳過這種情況。

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

我希望得到這樣的結果:

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

希望你所需要的戈登·利諾夫回答。請參考這個鏈接,https://www.techonthenet.com/oracle/joins.php希望這會給你一些想法。 – vipin

回答

1

你想要做什麼和您的查詢似乎無關彼此。首先,從不FROM條款中使用逗號。 始終使用使用正確的,明確的JOIN語法。

其次,我看不出有什麼CASE是。我懷疑你想要這樣一個查詢:

SELECT CC.STATION_ID AS NUM, 
     S.STATION_NAME AS "FROM STATION" 
FROM CONNECTION CC LEFT JOIN 
    STATIONS S 
    ON CC.STATION_ID = S.S_ID; 

至少,這似乎會做一些有用的事情。

+0

我修改了表格,並且寫下了最後的期望值 – Alex