declare @bitHaveRows bit
select @bitHaveRows = count(*)
from table
where (predicate)
有沒有我可以在這行調用任何函數:
select @bitHaveRows = count(*)
此位如果指定的值爲0沒有行,或者如果有一個或多個行,則爲1?
declare @bitHaveRows bit
select @bitHaveRows = count(*)
from table
where (predicate)
有沒有我可以在這行調用任何函數:
select @bitHaveRows = count(*)
此位如果指定的值爲0沒有行,或者如果有一個或多個行,則爲1?
根據c onversion chart,存在從int到bit的隱式轉換。但是,如果由於某種原因不工作:
CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END
這就是我所需要的。謝謝。我希望隱式轉換可以在這種情況下工作,但顯然不是。 – Daniel 2009-05-18 21:16:45
如果你的數據庫支持的話,你可以使用一個CASE語句:
declare @bitHaveRows
select @bitHaveRows = case when count(*) > 0 then 1 else 0 end
from yourtable
declare @bRowsExist
SELECT @bRowsExist = CAST(count(*) as bit)
FROM yourtable
...不知道它是否是一個更好的查詢比其他建議
什麼數據庫引擎(mysql,oracle,microsoft)? – 2009-05-18 21:12:57