What you've got is JSON, you know this seemingly. Starting with v2016 there is native JSON support, but with v2014 this will need some hacky string tricks (which can fail easily)...
My suggestion was to transform the JSON to attriute-centered XML:
declare @rawData nvarchar (max) =
'{"request_id":"801707","final_decision":"PASS","derived_Attribute_3":"PASS|Number of Total Active Institutions :3","derived_Attribute_1":"PASS|Number of active MFI :0","derived_Attribute_2":"PASS|Overdue Amount:0.0","derived_Attribute_4":"PASS|Total Exposure + Applied Amount :76384.0","derived_Attribute_5":"PASS|Write off amount:0.0","cbResponseMsg":"Final Decision:PASS || Number of Total Active Institutions :3 || Number of active MFI :0 || Overdue Amount:0.0 || Total Exposure + Applied Amount :76384.0 || Write off amount:0.0"}';
SELECT CAST(REPLACE(REPLACE(REPLACE(REPLACE(@rawData,'{"','<rawData '),'":"','="'),'","','" '),'"}','"/>') AS XML);
The result:
<rawData request_id="801707"
final_decision="PASS"
derived_Attribute_3="PASS|Number of Total Active Institutions :3"
derived_Attribute_1="PASS|Number of active MFI :0"
derived_Attribute_2="PASS|Overdue Amount:0.0"
derived_Attribute_4="PASS|Total Exposure + Applied Amount :76384.0"
derived_Attribute_5="PASS|Write off amount:0.0"
cbResponseMsg="Final Decision:PASS || Number of Total Active Institutions :3 || Number of active MFI :0 || Overdue Amount:0.0 || Total Exposure + Applied Amount :76384.0 || Write off amount:0.0" />
Now we can use a query along this to get hands on each single attribute's value.
SELECT B.*
FROM (VALUES(CAST(REPLACE(REPLACE(REPLACE(REPLACE(@rawData,'{"','<rawData '),'":"','="'),'","','" '),'"}','"/>') AS XML)))A(CastedToXml)
CROSS APPLY(VALUES(CastedToXml.value('(/rawData/@request)[1]','int')
,CastedToXml.value('(/rawData/@final_decision)[1]','varchar(100)')
,CastedToXml.value('(/rawData/@derived_Attribute_1)[1]','varchar(1000)')
,CastedToXml.value('(/rawData/@derived_Attribute_2)[1]','varchar(1000)')
,CastedToXml.value('(/rawData/@derived_Attribute_3)[1]','varchar(1000)')
,CastedToXml.value('(/rawData/@derived_Attribute_4)[1]','varchar(1000)')
,CastedToXml.value('(/rawData/@derived_Attribute_5)[1]','varchar(1000)')
,CastedToXml.value('(/rawData/@cbResponseMsg)[1]','varchar(1000)'))
)B(request,final_decision,derived_Attribute_1,derived_Attribute_2,derived_Attribute_3,derived_Attribute_4,derived_Attribute_5,cbResponseMsg);
This allows to use simple string methods on each extracted string.
The final query
This leads us to the final query. See how I use REVERSE() to return the elements read from right to left. This allows to search for the first : and use LEFT() to cut this part off. For the final result we have to use REVERSE() on the cut string, too.
SELECT B.request_id
,B.final_decision
,REVERSE(LEFT(B.derived_Attribute_1,CHARINDEX(':',B.derived_Attribute_1)-1)) AS derived_Attribute_1
,REVERSE(LEFT(B.derived_Attribute_2,CHARINDEX(':',B.derived_Attribute_2)-1)) AS derived_Attribute_2
,REVERSE(LEFT(B.derived_Attribute_3,CHARINDEX(':',B.derived_Attribute_3)-1)) AS derived_Attribute_3
,REVERSE(LEFT(B.derived_Attribute_4,CHARINDEX(':',B.derived_Attribute_4)-1)) AS derived_Attribute_4
,REVERSE(LEFT(B.derived_Attribute_5,CHARINDEX(':',B.derived_Attribute_5)-1)) AS derived_Attribute_5
,B.cbResponseMsg
FROM (VALUES(CAST(REPLACE(REPLACE(REPLACE(REPLACE(@rawData,'{"','<rawData '),'":"','="'),'","','" '),'"}','"/>') AS XML)))A(CastedToXml)
CROSS APPLY(VALUES(CastedToXml.value('(/rawData/@request_id)[1]','int')
,CastedToXml.value('(/rawData/@final_decision)[1]','varchar(100)')
,REVERSE(CastedToXml.value('(/rawData/@derived_Attribute_1)[1]','varchar(1000)'))
,REVERSE(CastedToXml.value('(/rawData/@derived_Attribute_2)[1]','varchar(1000)'))
,REVERSE(CastedToXml.value('(/rawData/@derived_Attribute_3)[1]','varchar(1000)'))
,REVERSE(CastedToXml.value('(/rawData/@derived_Attribute_4)[1]','varchar(1000)'))
,REVERSE(CastedToXml.value('(/rawData/@derived_Attribute_5)[1]','varchar(1000)'))
,CastedToXml.value('(/rawData/@cbResponseMsg)[1]','varchar(1000)'))
)B(request_id,final_decision,derived_Attribute_1,derived_Attribute_2,derived_Attribute_3,derived_Attribute_4,derived_Attribute_5,cbResponseMsg);
The result
+------------+----------------+---------------------+---------------------+---------------------+---------------------+---------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| request_id | final_decision | derived_Attribute_1 | derived_Attribute_2 | derived_Attribute_3 | derived_Attribute_4 | derived_Attribute_5 | cbResponseMsg |
+------------+----------------+---------------------+---------------------+---------------------+---------------------+---------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 801707 | PASS | 0 | 0.0 | 3 | 76384.0 | 0.0 | Final Decision:PASS || Number of Total Active Institutions :3 || Number of active MFI :0 || Overdue Amount:0.0 || Total Exposure + Applied Amount :76384.0 || Write off amount:0.0 |
+------------+----------------+---------------------+---------------------+---------------------+---------------------+---------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+