With the help of Eirikur Eiriksson's code.You acn try this.
;WITH test
AS
(SELECT POLICY_DETAILS_ID,HISTORY_ID,CODE_ID,
ROW_NUMBER() OVER(PARTITION BY POLICY_DETAILS_ID,HISTORY_ID ORDER BY code_id) AS rn
FROM @POLHIST)
SELECT POLICY_DETAILS_ID,HISTORY_ID,
MAX(CASE WHEN rn = 1 THEN code_id END) AS Code1,
MAX(CASE WHEN rn = 2 THEN code_id END) as Code2,
MAX(CASE WHEN rn = 3 THEN code_id END) as Code3,
MAX(CASE WHEN rn = 4 THEN code_id END ) as Code4
FROM test
GROUP BY POLICY_DETAILS_ID,HISTORY_ID
--rhythmk
------------------------------------------------------------------
To post your question use below link
https://www.sqlservercentral.com/articles/forum-etiquette-how-to-post-datacode-on-a-forum-to-get-the-best-help
🙂