我正在使用以下SQL查询:
WITH selectRow AS
(
SELECT *, row = ROW_NUMBER() OVER
(
ORDER BY (SELECT 1)
) FROM myTable
)
SELECT * FROM selectRow
WHERE row BETWEEN 1 AND 10;
通过此查询,我从表 AND 中检索了所有列的10个数据行,其中包含行号。但是我不想要这个行号列,我只想要表格本身的实际列。我在互联网上搜索但找不到任何有用的东西。我自己尝试了一些东西,但他们没有给我我期待的结果。
答案 0 :(得分:3)
WITH selectRow AS
(
SELECT *, row = ROW_NUMBER() OVER
(
ORDER BY (SELECT 1)
) FROM myTable
)
SELECT Column_names FROM selectRow
WHERE row BETWEEN 1 AND 10;
注意:使用column_names =列名称。
答案 1 :(得分:1)
我在这里看到ROW_NUMBER()函数是不必要的,因为你正在使用over(select 1),这意味着什么都没有。 相反,您可以使用以下简单地使用" TOP n"
select top 10 * from myTable
如果您需要范围:
然后我看到的方法是使用NOT IN:
select top 10 * from myTable
where id not in (select top 20 id from mytable)
如果你有sql server 2012,你可以使用" offset"
select * from myTable
order by id
offset 10 rows
fetch next 20 rows only