我有一个AccountAction
非规范化的 SQL Server 表。它是Account
andAction
表的扁平化版本,我希望它可以更快地报告数百万行的查询。一个Account
可以有很多Actions
,所以表格看起来类似于:
Account Action
account1 action1
account1 action2
account1 action10
account2 action5
但是,我在获取简单存储过程中受限子集的信息时遇到了一些麻烦。
select Account, Action
from AccountAction
where ???
我正在寻找的是获得前 X 个帐户及其所有操作。所以这将是一个动态的行数。因此,如果我传入 1,使用上面的示例表,我会得到 3 行(即给我第一个帐户的所有行)。
(我不介意帐户名称会出现在每一行中 - 它会在其他地方进行旋转)
我是否需要使用 ROWNUM 或类似来限制行?我确信这一定是一个比我迄今为止发现的更简单的问题。
编辑
使用 TOP 的答案不起作用,在示例中,如果我说“给我一个(第一个)帐户”,我希望返回 3 行。但是我怎么知道会有 3 个呢?它的动态。此外,它们可能不是连续的,如果 account1 的 action99 在结果中的位置为 5500 万怎么办。