我是 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 语法编写相同的查询?任何人都可以提供的任何帮助或指导将不胜感激!
您显示的语法是 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;
上面的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;