UPDATE表有两个不同的值

时间:2014-05-18 08:01:19

标签: sql oracle

拥有此表: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

1 个答案:

答案 0 :(得分:2)

您可以使用case声明:

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