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