在SAP HANA中有多种方式获取rowid,本文主要介绍几种较为常用的方式:
1. 使用$rowid$
SELECT "$rowid$", * FROM t_rowid WHERE "$rowid$" > 6;
这种方法的缺陷是不能在procedure里面的临时表中使用,此时应考虑使用第二种方法
2. 使用CE_CALC 及rownum
DROP TABLE demo_stud;
CREATE COLUMN TABLE demo_stud(
NAME VARCHAR(10),
AGE INTEGER
);
INSERT INTO demo_stud VALUES('Jim', 10);
INSERT INTO demo_stud VALUES('Green', 10);
DROP PROCEDURE proc_demo_calc;
CREATE PROCEDURE proc_demo_calc
LANGUAGE SQLSCRIPT AS
BEGIN
tPart = SELECT NAME FROM demo_stud;
addRowID = CE_PROJECTION(:tPart, [ "NAME",CE_CALC('rownum()', integer) as ROW_ID]);
SELECT TOP 10 * FROM :addRowID;
END;
CALL proc_demo_calc;