【发布时间】:2009-02-28 04:56:50
【问题描述】:
我想根据同一表中是否存在其他行从 SQL Server 2000/2005 表变量中删除行(如果存在具有相同日期的非 0 计数行,则删除所有 0 计数行)。这是一个简化的示例,应该只删除首先添加的行:
declare @O table (
Month datetime,
ACount int NULL
)
insert into @O values ('2009-01-01', 0)
insert into @O values ('2009-01-01', 1)
insert into @O values ('2008-01-01', 1)
insert into @O values ('2007-01-01', 0)
delete from @O o1
where ACount = 0
and exists (select Month from @O o2 where o1.Month = o2.Month and o2.ACount > 0)
问题是我无法让 SQL Server 接受表变量的 o1 别名(我认为由于“o1.Month = o2.Month”匹配字段名称,需要别名)。错误是:
消息 102,级别 15,状态 1,第 11 行
'o1' 附近的语法不正确。
【问题讨论】:
标签: sql sql-server alias