我在 SQL Server 中有一个表,其中每一行都是要传递的邮件。每封电子邮件都属于一个域。
我需要根据日期列选择要发送的第一封电子邮件,但我想从以循环方式使用的最后一个域开始按域交替它们
桌子:
CREATE TABLE Delivery (Date datetime, Domain int);
INSERT INTO Delivery (Date, Domain)
VALUES
('2014-01-07 11:24:31', 1),
('2014-04-07 13:21:42', 2),
('2014-02-07 14:48:58', 3),
('2014-03-07 15:58:01', 1),
('2014-06-07 15:58:01', 2),
('2014-01-07 12:58:01', 3),
('2014-01-07 19:58:01', 1) ;
使用此查询,我可以根据需要对它们进行排序,但我找不到使用起始值对它们进行排序的方法:
SELECT [Date],[Domain]
FROM (
SELECT [Date] ,[Domain],
ROW_NUMBER() OVER (PARTITION BY [Domain] ORDER BY [Date]) AS recID
FROM Delivery ) AS r
ORDER BY recID, [domain]
我需要这样说:
ORDER BY [domain] > @lastuseddomain
我需要以定时间隔运行此查询,TOP 1
预期结果是获取最早的行,如果存在,则域 > 上一行的域,或者以域 = 1 重新启动。
就像在域上的循环排序