may be this?SELECT distinct cl.stu_code,MAX(CASE WHEN cl.Seq=1 THEN Course ELSE '' END) AS Course_01,MAX(CASE WHEN cl.Seq=2 THEN Course ELSE '' END) AS Course_02,MAX(CASE WHEN cl.Seq=3 THEN Course ELSE '' END) AS Course_03,MAX(CASE WHEN cl.Seq=4 THEN Course ELSE '' END) AS Course_04FROM(SELECT ROW_NUMBER() OVER(PARTITION BY stu_code ORDER BY Course) AS Seq,* FROM course_location)clGROUP BY cl.stu_code, cl.site, cl.mode