这应该很容易,但是由于某些原因,我无法正确获取SQL Server 2008的语法
如果表中有列,则我的变量必须为true,否则应为false。
截至目前,我有这个
DECLARE @LEHasSessions bit
set @LEhasSessions = ((SELECT COUNT(*) FROM @LEForSession) > 0)
显然没有编译。
语法应如何使其起作用?
最佳答案
SQL Server没有布尔数据类型。请改用CASE X THEN 1 ELSE 0
。
另外,最好在这里使用EXISTS
而不是COUNT
,这样它可以在读取第一行后停止处理(与对表中的所有行进行计数相反)。
SET @LEHasSessions = CASE
WHEN EXISTS(SELECT *
FROM @LEForSession) THEN 1
ELSE 0
END