【发布时间】:2016-04-14 10:31:29
【问题描述】:
我的礼物表有多行与下面的内部连接语句中的条件相匹配。我想选择一个特定的行(例如第 3、第 5 或第 32 行)。我曾尝试使用 Row_Number(),但它是一个窗口函数,需要在选择部分内(据我所知),但这会引发错误,因为整个语句必须只返回一个值。
我也尝试过使用 top 然后选择 top 的底部值(例如顶部 5,然后选择最后一个值),但我无法让它工作。使用下面的语句,如何修改它以同时选择第 n 行?
update output
set output.gift_date01 = (select gifts.gift_date
where
gifts.gift_date >= '2015-1-1 00:00:00'
and gifts.gift_date <= '2015-12-31')
from output
inner join gifts on output.donor_id = gifts.donor_id;
谢谢!
【问题讨论】:
-
我希望您意识到
output是 SQL Server 中的关键字,您可能不应该这样命名您的表? -
我不明白你是如何在你的陈述中获得第三个(或第五个或其他)的。
-
我可以发布我是如何尝试做到的,但目前它并没有尝试在第 n 天之前获得任何结果,因为没有一个可以保持工作。
标签: sql sql-server sql-server-2012 inner-join