2014-05-18 69 views
1

更新表有這個表:TEST有兩個不同的值

//TEST 
A#     STATUS 
---------------------------- 
1 
2 
3 

另一個表名:TEST1

//TEST1 
A# 
---------- 
1 
2 

使用下面的查詢:

Update TEST t set t.Status='y' WHERE 
EXISTS (SELECT t1.A# FROM TEST1 t1); 

,但我想設置狀態如果找到記錄,則插入'Y'Else'X' 預期的輸出是這樣的:

A#     STATUS 
-------------------------------- 
    1      Y 
    2      Y 
    3      X 

回答

2

您可以使用case聲明:

Update TEST t 
set t.Status = (case 
        when EXISTS (SELECT t1.A# FROM TEST1 t1) 
        then 'y' 
        else 'x' 
        end 
       )