从查询结果中删除列(SQL)

时间:2014-09-25 11:11:41

标签: sql sql-server

我正在使用以下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个数据行,其中包含行号。但是我不想要这个行号列,我只想要表格本身的实际列。我在互联网上搜索但找不到任何有用的东西。我自己尝试了一些东西,但他们没有给我我期待的结果。

2 个答案:

答案 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