通过存储过程分配行号

时间:2014-10-07 06:31:01

标签: mysql sql vb.net stored-procedures

如何指定Row_number以及通过MySQL存储过程进行选择,我可以使用MS-SQL进行操作,如下所述:

CREATE PROCEDURE [dbo].[GetCustomersPageWise]
      @PageIndex INT = 1
      ,@PageSize INT = 10
      ,@PageCount INT OUTPUT
AS
BEGIN
      SET NOCOUNT ON;
      SELECT ROW_NUMBER() OVER
            (
                  ORDER BY [CustomerID] ASC
            )AS RowNumber
         INTO #Results
      FROM [Customers]
END

我的问题是......

  • 我如何初始化MySQL 中的参数(例如:@PageIndex INT = 1
  • MySQL如何实现

    SELECT ROW_NUMBER() OVER ( ORDER BY [CustomerID] ASC )AS RowNumber

我尝试过什么

  • 当我喜欢这个时

    CREATE PROCEDURE 'dbo'.'GetCustomersPageWise'(p_PageIndex INT = 1,p_PageSize INT = 10,p_PageCount INT OUTPUT) 导致错误 Incorrect syntax near =1

  • 我也试过

    SELECT ROW_NUMBER()OVER;  (     订购'CustomerID'ASC  )AS RowNumber

    会导致错误 脚本行:4您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'ORDER BY product_gid ASC附近使用正确的语法         )AS RowNumber    product_gid, '第8行

1 个答案:

答案 0 :(得分:0)

CREATE PROCEDURE [dbo].[GetCustomersPageWise]
      @PageIndex INT = 1
      ,@PageSize INT = 10
      ,@PageCount INT OUTPUT
AS
BEGIN
      SET @ROW_NUMBER= 0;
      Insert INTO Results SELECT @ROW_NUMBER:= @ROW_NUMBER+ 1
      FROM Customers
END

像这样你可以达到预期的效果。