【发布时间】:2016-11-02 00:46:18
【问题描述】:
我在 SQL Server 2012 中有这个查询
DELETE FROM [DB1].[dbo].[Newsletter]
WHERE [DB1].[dbo].[Newsletter].RecordID IN
(SELECT TOP(100) *
FROM [DB1].[dbo].[Newsletter]
LEFT JOIN [DB1].[dbo].[Newsletter_Tracking] ON RecordId = Newsletter_Tracking.UserId
WHERE Newsletter.DateSubscribed < '2010-01-01')
没有删除的选择工作正常。它返回所有不在左表中且早于 2010 年的行。
我得到这个错误:
消息 116,级别 16,状态 1,线路
当子查询不使用 EXISTS 引入时,选择列表中只能指定一个表达式。
【问题讨论】:
-
SELECT TOP 100 RecordID而不是 *. -
使用
EXISTS代替错误消息提示您。
标签: sql sql-server select join sql-delete