cancel
Showing results for 
Search instead for 
Did you mean: 

How could I get the Length of an array?

Former Member
0 Kudos

Dear all,

I am writing an procedure where I need to use the length of an array to do the for loop.

The length() is not right. I google it , there is no answer.

PN2 := ARRAY_AGG(:TAB1.POINT ORDER BY POINT);
FOR I in 1..LENGTH(PN2) DO

Is anyone know the function. Thanks a lot.

Shu

The whole program:

DROP PROCEDURE TRAFFIC.ARRAY_AGG_TEST;

CREATE PROCEDURE ARRAY_AGG_TEST()

  LANGUAGE SQLSCRIPT  AS

BEGIN

  DECLARE PN2 Integer ARRAY;

  DECLARE PN1 INTEGER ARRAY;

  DECLARE TEMPN INTEGER ARRAY;

  DECLARE I INTEGER;

  TAB1 = SELECT DISTINCT(POINT_2) AS POINT FROM "TRAFFIC"."PAIRSPD";

  PN2 := ARRAY_AGG(:TAB1.POINT ORDER BY POINT);

  FOR I in 1..LENGTH(PN2) DO

  TAB2 = SELECT POINT_1 AS POINT, COUNT(*) AS NUMM FROM "TRAFFIC"."PAIRSPD" WHERE POINT_2 = :ID[I]  GROUP BY POINT_1 ORDER BY NUMM DESC;

  TEMPN := ARRAY_AGG(:TAB2.POINT);

  PN1[I] := TEMPN[1];

  END FOR;

  TAB3 = UNNEST(:PN1,:PN2);

  SELECT * FROM TAB3;

END;

CALL ARRAY_AGG_TEST();

Accepted Solutions (1)

Accepted Solutions (1)

lbreddemann
Active Contributor
0 Kudos

Instead of googling you might just press F1 in SAP HANA Studio and have a look into the SQLScript documentation.

The function to return the number of elements in an ARRAY is called CARDINALITY.

- Lars

Former Member
0 Kudos

Dear Lars,

Thanks a lot. I checked that ! It worked:)!

Shu

Answers (0)