我不是oracle专家,所以我希望有人可以帮我解决这个问题 .
我有一个场景,我需要从表中查询前1000个记录,我的查询已经有where子句的where子句 . 例如,假设有一个名为employee的表有4列,
-
名字
-
薪水
-
州
-
国家
并且我想查询状态所在的前1000条记录(MA或NY或NH),我该怎么做?
select name, salary
from Employee
where state IN ('MA','NY','NH')
现在的问题是,如果我最后使用rownum <1000,它将只找到所有结果并仅显示前1000个 . 但是我想看看IN子句中每个状态值的前1000个...有人可以建议正确的方法来做到这一点......
提前致谢...
2 回答
你想使用
row_number()
:我不确定“每个州的前1000名”是什么意思 . 您的问题中没有订购或建议订购 . 而且,SQL表本质上是无序的 . 这将从不确定的行返回每个状态的1000个值 .
用这个: