2014-05-15 62 views
0

存在的值。如果我有2代表說TABLE_1如何檢查是否在多個表

EMP_ID EMP_NAME EMP_COUNTRY 
100  John  Russia 
101  Mitchell UK 
102  Sarah  Japan 

TABLE_2

EMP_ID EMP_NAME EMP_COUNTRY 
    200 Sunil   India 
    201 Clanton  Germany 
    202 XYZ   Australia 

我要檢查EMP_ID中是否存在[TABLE_1 OR TABLE_2]如果存在於其中一個表中,然後基於該標誌設置一些標誌,如何檢查。

+0

'Union'會有所幫助。你有什麼嘗試?你設置了哪個標誌? – sgeddes

+2

在SQL中,你必須單獨檢查每個表,你不能說'IN(table1 OR table2)',你必須說'WHERE EMP_ID IN(從表1中選擇EMP_ID FROM表1 UNION SELECT EMP_ID FROM table2)''。 – Turophile

+0

或者你可以將它作爲'WHERE EMP_ID IN(SELECT EMP_ID FROM TABLE1)或EMP_ID IN(SELECT EMP_ID FROM TABLE2)' – Turophile

回答

1
select count(*) 
from 
(select emp_id from table_1 
union 
select emp_id from table_2) t 
where t.emp_id = <id_value> 
+0

嗨德米特里其實我想要這樣的東西:) – user2647888

0
If (Select Count(*) From TABLE_1 Where EMP_ID = @EMP_ID) > 0 
    Begin 
     -- set flag 
    End 
Else If (Select Count(*) From TABLE_2 Where EMP_ID = @EMP_ID) > 0 
    Begin 
    -- or set flag here 
    End 
1

你還可以嘗試:

SELECT DECODE((
SELECT SUM(CNT) FROM 
(SELECT COUNT(1) CNT FROM TABLE1 WHERE EMP_ID = yr_emp_id 
UNION 
SELECT COUNT(1) CNT FROM TABLE2 WHERE EMP_ID = yr_emp_id)), 
0,'FALSE','TRUE') 
FROM DUAL;