Rows to Columns (SQL Server)
There are a couple ways that you can get the final result that you want. You can use PIVOT or you can also use an aggregate function along with a CASE expression, but in order to return multiple rows for each Type you'll need to create a unique value that you can GROUP BY.  

I'd recommend using a windowing function like row_number to first generate a unique value for each row in your table partitioned by the TYPE.  You'd write this similar to:

select 
  [Type],
  [Value],
  rn = row_number() over(partition by [Type] order by (select 1))
from yourtable;


This creates a unique value for each row in your table by Type aka Credit orDebit`. This is needed when you aggregate your data so you will return more than one row. 

Once you've created this row number, you can convert your data into columns by using either the PIVOT function or CASE with aggregate. 

select 
  Credit = max(case when [Type] = 'C' then [Value] end),
  Debit = max(case when [Type] = 'D' then [Value] end)
from
(
  select 
    [Type],
    [Value],
    rn = row_number() over(partition by [Type] order by (select 1))
  from yourtable
) d
group by rn;


Or:

select 
  Credit = C,
  Debit = D
from
(
  select 
    [Type],
    [Value],
    rn = row_number() over(partition by [Type] order by (select 1))
  from yourtable
) d
pivot
(
  max(value)
  for [Type] in (C, D)
) p;


Here is a demo. Both of these return the result:

| Credit | Debit |
|--------|-------|
| 381.22 |    80 |
|  25.49 | 25.48 |
| 705.56 | 25.49 |


If you need the Credit or Debit data to appear specifically in certain rows, than you would need to provide some additional data to tie each Credit or Debit together. These versions just convert the rows into columns of data.