代码之家  ›  专栏  ›  技术社区  ›  Kabhi

相当于Postgres查询的SQL Server

  •  1
  • Kabhi  · 技术社区  · 8 年前
    select column 
    from table 
    order by row_number() over () 
    limit 1000 offset 200;
    

    select top 1000 offset 200 column 
    from table 
    order by row_number() over (ORDER BY column ASC) 
    limit 1000 offset 200;
    

    但它会抛出以下错误。

    “17000000”附近的语法不正确。

    2 回复  |  直到 8 年前
        1
  •  2
  •   mendosi    8 年前
    SELECT column 
      FROM table 
      ORDER BY Row_Number() Over (Order By column)
      OFFSET 200 ROWS
      FETCH NEXT 1000 ROWS ONLY;
    

    https://technet.microsoft.com/en-us/library/gg699618(v=sql.110).aspx

    请注意,您确实应该使用ORDERBY子句,该子句保证每次都给出相同的顺序。

        2
  •  1
  •   UV.    8 年前

    SELECT t.TABLE_NAME, t.COLUMN_NAME 
        , ROW_NUMBER() over (order by t.COLUMN_NAME asc) as RowNumber
    FROM INFORMATION_SCHEMA.COLUMNS as t
    ORDER BY ROW_NUMBER() over (order by t.COLUMN_NAME asc)
    OFFSET 200 ROWS
    FETCH NEXT 1000 ROWS ONLY