INSERT INTO stgICBatchUpload
SELECT MAX(CASE WHEN attr_no = 1 THEN CAST(token AS VARCHAR(20)) END) AS EffectiveDtae,
MAX(CASE WHEN attr_no = 2 THEN CAST(token AS VARCHAR(20)) END) AS RIC,
MAX(CASE WHEN attr_no = 3 THEN CAST(token AS VARCHAR(5)) END) AS ClassificationType,
MAX(CASE WHEN attr_no = 4 THEN CAST(token AS VARCHAR(20)) END) AS SubsectorCode,
CURRENT_TIMESTAMP,USER,CURRENT_TIMESTAMP,USER
FROM (
SELECT tokennum, 4 AS NumCols,
CASE WHEN token ='' THEN NULL ELSE token END AS token,
(tokennum-1)/NumCols AS recno,
tokennum-(recno*NumCols) AS attr_no
FROM TABLE (
STRTOK_SPLIT_TO_TABLE(1,'2021-09-06|6878.HK|BUS|601020#2021-09-06|2099.HK|BUS|051010#2021-09-06|3313.HK|BUS|602010#2021-09-06|3623.HK|BUS|503040#','|#')
RETURNS (outkey INTEGER, tokennum INTEGER, token VARCHAR(32)CHARACTER SET UNICODE)
) AS d
) AS T
GROUP BY recno