2017-08-22 8 views
-2

私は2つのテーブルを持っています。私はビューを作成したいと思います。私は、値の2番目のテーブルを正しい名前で置き換えるクエリを書いた。Oracleのケースでヌル値が多い

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である。 2つの値が等しくない場合、どのようにしてそのケースをスキップできますか?

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

は何をしたいとお問い合わせは、お互いに何の関係もないように見えます。最初に、は句ではカンマを使用しません。 常には、適切で明示的なJOIN構文を使用します。

第2に、私は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

関連する問題