SQL - 在select语句中分配位变量

Dan*_*iel 3 sql

例如:

declare @bitHaveRows bit
 select @bitHaveRows = count(*)
   from table
  where (predicate)
Run Code Online (Sandbox Code Playgroud)

我可以在这一行上调用任何函数:

select @bitHaveRows = count(*)
Run Code Online (Sandbox Code Playgroud)

如果没有行,则将该位赋值为0;如果有一行或多行,则赋值为1?

小智 7

declare @bRowsExist
SELECT @bRowsExist = CAST(count(*) as bit)
FROM yourtable
Run Code Online (Sandbox Code Playgroud)

...不确定它是否比其他建议更好


Joe*_*orn 6

根据c 反转图表,存在从int到bit的隐式转换.但如果由于某些原因不起作用:

CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END
Run Code Online (Sandbox Code Playgroud)