Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Remove NULLs and Merge records

RengudiOct 21 2022 — edited Oct 21 2022

Hi Gurus,
I have following input
WITH
mytable (RANS_ID,
T_ID,
ACT_NAME,
ROLE_NAME)
AS
(SELECT '1,354' AS RANS_ID,
'1,005' AS T_ID,
'bcomfey,rbllfn' AS ACT_NAME,
NULL AS ROLE_NAME
FROM DUAL
UNION ALL
SELECT '1,354', '1,005', NULL, 'Admin,MAN' FROM DUAL
UNION ALL
SELECT '1,364', '1,005', NULL, 'Admin' FROM DUAL
UNION ALL
SELECT '1,365', '1,005', NULL, 'MAN' FROM DUAL
UNION ALL
SELECT '1,366', '1,005', NULL, 'Any' FROM DUAL
UNION ALL
SELECT '1,373', '1,005', 'rbllfn', NULL FROM DUAL
UNION ALL
SELECT '1,353', '1,004', 'bcomfey,rbllfn', NULL FROM DUAL
UNION ALL
SELECT '1,353', '1,004', NULL, 'Any' FROM DUAL
UNION ALL
SELECT '1,352', '1,003', 'bcomfey,rbllfn', NULL FROM DUAL
UNION ALL
SELECT '1,352', '1,003', NULL, 'Any' FROM DUAL)
SELECT *
FROM mytable;

Expected output

WITH
mytable (RANS_ID,
T_ID,
ACT_NAME,
ROLE_NAME)
AS
(SELECT '1,352' AS RANS_ID,
'1,003' AS T_ID,
'bcomfey,rbllfn' AS ACT_NAME,
'Any' AS ROLE_NAME
FROM DUAL
UNION ALL
SELECT '1,353', '1,004', 'bcomfey,rbllfn', 'Any' FROM DUAL
UNION ALL
SELECT '1,354', '1,005', 'bcomfey,rbllfn', 'Admin,MAN' FROM DUAL
UNION ALL
SELECT '1,364', '1,005', NULL, 'Admin' FROM DUAL
UNION ALL
SELECT '1,365', '1,005', NULL, 'MAN' FROM DUAL
UNION ALL
SELECT '1,366', '1,005', NULL, 'Any' FROM DUAL
UNION ALL
SELECT '1,373', '1,005', 'rbllfn', NULL FROM DUAL)
SELECT *
FROM mytable; --output

image.png

This post has been answered by Frank Kulash on Oct 21 2022
Jump to Answer
Comments
Post Details
Added on Oct 21 2022
3 comments
656 views