这是我的查询
update b
set b.col1 = if(1) <= 0
begin
select 1 as bal
end
else
select 0 as bal
from
dbo.table1 b
inner join dbo.table1 a
on b.id = a.id
and b.date = a.date
“IF”部分本身很有效。在此查询表单中将其置为抛出
关键字“if”附近的语法不正确。
我失去了睡觉以外的东西。答案 0 :(得分:2)
您需要在查询中使用CASE WHEN语句
update b
set b.col1 = CASE WHEN 1 <= 0 THEN 1 ELSE 0 END
答案 1 :(得分:1)
“if”是一个语句,因此您不能将其用作表达式。您可以改为使用“case”:
update b
set b.col1 = case when 1 <= 0 then 1 else 0 end
from dbo.table1 b
inner join dbo.table1 a on b.id = a.id and b.date = a.date
(你的if中的表达式虽然没有多大意义,因为条件总是具有相同的值。)
答案 2 :(得分:0)
如何使用
set b.col1 = case when if(1) <=0 then 1 else 0 end
答案 3 :(得分:0)
呀。
在一些SQL方言中,有if
这是一个函数。如果(expresion1,expresion2,expresion3)
在某些SQL方言中,有一个if ...then .. endif
是一个控制流构造。
有些SQL方言都有。
后一种形式通常只能用于商店程序/功能;前者可以使用任何功能。