2016-04-14 33 views
0

ben dayalı iki tür veri kategorize etmek istediğiniz başka gösterge parçalanarak ana var ekran eğer: "Tür" gibi bir değer, T2 ekran "A" varsaOracle sql - rekor

başka gösterge "B". Bunu yaparken veya kodu çözmek için bunu yapmanın bir yolu var mı?

T1, T2'nin üst öğesidir.

T1 
1 
2 
3 
4 
5 

T2 
1 
1 
3 
3 
3 
4 

İdeal benim çıkış

Type 
A 
B 
A 
A 
B 

düzenlemek olacaktır: O A eklemek istiyorum ve oda benim yukarıda durumuna göre görüntülemek istediğiniz metin değerleridir, bu db gelmiyor. Ayrıca, T2, 2 & 5 için karşılık gelen bir kayda sahip olmayacaktır. Bu yüzden, gerçekten boş olup olmadığını kontrol edemiyorum.

cevap

0

bu deneyin:

SELECT T1.Col, 
     CASE WHEN T2.Col IS NOT NULL THEN 'A' ELSE 'B' END AS Type 
FROM T1 
LEFT JOIN (
    SELECT DISTINCT Col FROM T2 
) AS T2 ON T1.Col = T2.Col 
0

Oracle Kurulumu:

CREATE TABLE T1 (column_name) AS 
SELECT LEVEL FROM DUAL CONNECT BY LEVEL < 6; 

CREATE TABLE t2 (column_name) AS 
SELECT 1 FROM DUAL UNION ALL 
SELECT 1 FROM DUAL UNION ALL 
SELECT 3 FROM DUAL UNION ALL 
SELECT 3 FROM DUAL UNION ALL 
SELECT 4 FROM DUAL; 

Sorgu:

SELECT NVL2(T2.column_name, 'A', 'B') AS Type 
FROM T1 
     LEFT OUTER JOIN 
     (SELECT DISTINCT column_name FROM T2) T2 
     ON T1.column_name = T2.column_name 
ORDER BY T1.column_name; 

Çıktı:

TYPE 
---- 
A  
B  
A  
A  
B