【问题标题】:Translate from MSSQL to MySQL从 MSSQL 转换为 MySQL
【发布时间】:2014-04-19 02:39:10
【问题描述】:

谁能把这个 MSSQL 表达式翻译成 MySQL 吗?

CREATE PROCEDURE `spGetEmployees`
@StartIndex int,
@MaximumRows int
as
BEGIN
    select EmployeeID,
           Name,
           Gender, 
           City,
           StartDate
      from (select row_number()
              over (order by EmployeeID)
                as RowNumber,
                   EmployeeID,
                   Name,
                   Gender,
                   City,
                   StartDate
              from tblEmployee) Employees
     where RowNumber >= @StartIndex
       and RowNumber < (@StartIndex + @MaximumRows);
END

tblEmployee 是真实表,Employees 是派生表。

【问题讨论】:

  • 是的,我们可以。但这不是编码服务:您自己尝试这样做时发现了什么具体问题?
  • 由于 MySql 不支持 analytic functions,因此您可能需要查看 ROW_NUMBER() in MySQL 以获得创意。
  • 如果 tblEmployee 是临时表,则说明您没有提供足够的信息。
  • 我试图做的最好的解释是:我试图做这个 ASP.net 练习,但在 mySql 中:youtube.com/…

标签: mysql sql-server tsql


【解决方案1】:

mysql过程的一般语法是

CREATE PROCEDURE storedProcedureName( IN someString VarChar(150) )
BEGIN
  -- Sql queries goes here
END

在您的情况下,您的程序将类似于:

CREATE PROCEDURE spGetEmployees( IN StartIndex int, IN MaximumRows int)
BEGIN

select EmployeeID, Name, Gender, City, StartDate from
(select row_number() over (order by EmployeeID) as RowNumber, EmployeeID, Name,
    Gender, City, StartDate
from tblEmployee)  Employees
-- this part you may want to use limit or other mysql functions
--where RowNumber >= StartIndex and RowNumber < (StartIndex + MaximumRows);

END

如果你也需要,MySQL中临时表的基本语法是这样的:

CREATE TEMPORARY TABLE tableName(
emp_id VARCHAR(10),
 emp_Name VARCHAR(50),
emp_Code VARCHAR(30),
emp_Department VARCHAR(30)
);

【讨论】:

  • 谢谢马塞洛,但我已经尝试过这样做。不管用。请看:youtube.com/… 我尝试这样做但在 mySql 中
  • 究竟是什么不起作用?程序的创建?创建临时表有问题吗?您收到什么错误消息?请说得更具体一些,我们将为您提供更多帮助。
  • 首先,我对表 tblEmployee 的看法是错误的。它是一个真实的表,Employees 是派生表。过程的目标是在我调用 spGetEmployees(1,3) 时显示从 1 到 3 的记录。我写了一个像你一样的程序,但我已经包含了'where'的部分。错误出现在 '(' 就在 'оrdеr' 旁边。上面写着:意外的 '(' ,期待 UNION_SYM 或 ')'
猜你喜欢
  • 2012-03-22
  • 2018-08-09
  • 1970-01-01
  • 2014-01-04
  • 2017-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-11
相关资源
最近更新 更多