2014-01-02 6 views
2

Я хочу сделать заявление обновления в соответствии с результатом подзапросаdb2 - оператор Update, используя подзапрос с футляром

Например:

Update TABLE1 
set A= (Select Count(*) from TABLE2) 
if the value of count is 0 then Update the value of A to be 0 Else set A = 1; 

Так могли бы вы посоветовать мне, как я могу это сделать ?

Я попытался следующие, но я получил ошибку синтаксиса:

SELECT count(*) as TC 
CASE 
    WHEN TC > 0 
    THEN '1' 
    ELSE '0' 
    END AS dum 
    FROM Event E where E.Type= 'CANCELLING'; 

ответ

4

CASE идеально подходит:

UPDATE TABLE1 
SET A = 
CASE 
    WHEN (SELECT count(*) FROM TABLE2) > 0 THEN 1 
    ELSE 0 
END 
+0

Спасибо AnatoliiG за Ваш ответ:) – User

1
declare @count int 
set @count=Select Count(*) from TABLE2 

if @count=0 
BEGIN 
Update TABLE1 
set A=0 
end 
else 
Update TABLE1 
set A=1 
+0

Благодаря Kiet вам ответить :) – User

Смежные вопросы