I'm not sure i understand you well, but check this:
DECLARE @invoice TABLE(payment_mode VARCHAR(30), cash_amount DECIMAL(8,2), card_amount DECIMAL(8,2))
INSERT INTO @invoice(payment_mode, cash_amount, card_amount)
VALUES('cash', 500, 0), ('cash', 255, 0),
('card', 0, 1500), ('card', 0, 299),
('cash', 111, 0), ('cash', 222, 0),
('card', 0, 88), ('card', 0, 77),
('cash and card', 200, 300), ('cash and card', 300, 200)
;WITH CTE AS
(
SELECT *
FROM @invoice
WHERE payment_mode <>'cash and card'
UNION ALL
SELECT 'cash', cash_amount, 0
FROM @invoice
WHERE payment_mode ='cash and card'
UNION ALL
SELECT 'card', 0, card_amount
FROM @invoice
WHERE payment_mode ='cash and card'
)
SELECT C.*, CASE WHEN C.payment_mode = 'cash' THEN 'CashBill' ELSE 'CardBill' END AS BillType
FROM CTE AS C
A result set contains 12 records, because 'cash and card' data have been "splited" into 4 rows (instead of 2).