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

时间:2009-05-18 21:11:15

标签: sql

例如:

declare @bitHaveRows bit
 select @bitHaveRows = count(*)
   from table
  where (predicate)

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

select @bitHaveRows = count(*)

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

3 个答案:

答案 0 :(得分:6)

答案 1 :(得分:5)

根据c onversion chart,有一个从int到bit的隐式转换。但如果由于某种原因不起作用:

CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END

答案 2 :(得分:1)

如果您的数据库支持它,您可以使用CASE语句:

declare @bitHaveRows
select @bitHaveRows = case when count(*) > 0 then 1 else 0 end
from yourtable