2014-10-30 167 views
-2

获得价值我有2个表需要帮助从Oracle表

表1

Name  City 
-------------------- 
Deep  Delhi 
Manu  Atlanta 
Raju  PanamaCity 

表2

City 
----- 
Delhi 

我想补充的结果称为 “国家” 的另一列所以最后的结果会像

​​

因此,如果第一台城市列的值匹配,则新列的值应该“已知”

+0

欢迎堆栈溢出。请花点时间查看关于如何在这里提出一个好问题的所有信息 - 您目前的问题不符合指南,并且如果您不修复问题,很快就会关闭。 http://stackoverflow.com/help和http://meta.stackexchange.com/questions/10811/how-do-i-ask-and-answer-homework-questions将有所帮助。 – GreenAsJade 2014-10-30 20:26:58

回答

0

Joins和case语句读了

SELECT t1.name, 
    t2.city, 
    case t2.city is NULL then 'Unknown' else 'Known' end as Country 
FROM table1 t1 
LEFT JOIN table2 t2 
on t1.city = t2.city 

样机:

Select t1.name, 
    t1.city, 
    case when t2.city is NULL then 'Unknown' else 'Known' end as Country 
FROM (
    select 'Deep' as Name, 'Dehli' as city from dual UNION 
    select 'Manu' as Name, 'Atlanta' as city from dual UNION 
    select 'Raju' as Name, 'PanamaCity' as city from dual) t1 
LEFT JOIN 
(select 'Dehli' as city from dual) 
    t2 
    on t1.city=t2.city 

results in: 
Name City  Country 
Deep Dehli  Known 
Manu Atlanta  Unknown 
Raju PanamaCity Unknown 
+0

非常感谢您的帮助。它和我想要做的完全一样。 – Deep 2014-10-31 13:15:55