带有输入参数的 SAP HANA 查询的语法

问题描述 投票:0回答:2

我是 SAP HANA SQL 语法的新手,在定义输入参数时遇到问题。我做了几次谷歌搜索,发现了几个不同的建议,但都没有用。在 SQL Server 中,我会这样定义查询参数:

DECLARE @StartDate DATETIME,
        @EndDate DATETIME;

SELECT EmployeeName,
       EmployeeTitle,
       Salary,
       PositionStartDate,
       PositionEndDate
FROM EmployeeData
WHERE 1 = 1
  AND PositionStartDate = @StartDate
  AND PositionEndDate = @EndDate

如何使用 SAP HANA SQL 语法编写相同的查询?任何人都可以提供的任何帮助或指导将不胜感激!

sql hana
2个回答
1
投票

您显示的语法是 MS SQL Servers 的T-SQL,过程 SQL 扩展,而不是标准 SQL。

SAP HANA 的等效项是 SQLScript,相应的代码片段如下所示:

DO BEGIN
DECLARE startDate DATE;
DECLARE endDate DATE;
   
   SELECT EmployeeName,
          EmployeeTitle,
          Salary,
          PositionStartDate,
          PositionEndDate
   FROM EmployeeData
   WHERE 1 = 1
     AND PositionStartDate = :startDate
     AND PositionEndDate = :enDate;

END;

0
投票

上面的Answer code有错误,声明endDate并用在where :enDate

听下面的示例查询,您可以在 SAP HANA DB 中使用 * 或带“,”的列名

DO BEGIN

-- Declare variables
DECLARE startDate DATE;
DECLARE endDate DATE;

-- assign value startDate and endDate 
startDate := '2023-04-01';
endDate := '2023-04-12';

   SELECT 
        T0.*
   FROM "TABLENAME" T0
   WHERE 1 = 1 AND T0."FromDate" = startDate AND T0."ToDate" = endDate;

END;

DO BEGIN

-- Declare variables
DECLARE startDate DATE;
DECLARE endDate DATE;

-- assign value startDate and endDate 
startDate := '2023-04-01';
endDate := '2023-04-12';

   SELECT 
        T0."column1",
        T0."column2"
   FROM "TABLENAME" T0
   WHERE 1 = 1 AND T0."FromDate" = startDate AND T0."ToDate" = endDate;

END; 
© www.soinside.com 2019 - 2024. All rights reserved.