You would need to use Pivoting to solve this type of Problem.
Lets create a small demo table T2 and proceed from it.
Create table T2 (type varchar(100),Value varchar(100));
insert into T2 Values('Name','John');
insert into T2 Values('Gender','Male');
insert into T2 Values('Address','New City');
insert into T2 Values('Phone','62813');
Now if this is the exact number then we can hard code column value of type and use it in our sql as shown below.
SELECT [Name]
    ,[Gender]
    ,[Address]
    ,[Phone]
FROM (
    SELECT type
        ,Value
    FROM T2
    ) AS T1
PIVOT(Min(Value) FOR type IN (
            [Name]
            ,[Gender]
            ,[Address]
            ,[Phone]
            )) PVT;

But if there are lot of rows in your table and you want it to be dynamic then you can use dynamic query to handle such type of problems.
DECLARE @dml AS NVARCHAR(MAX);
DECLARE @ColumnName AS NVARCHAR(MAX);
SELECT @ColumnName = ISNULL(@ColumnName + ',', '') + QUOTENAME(type)
FROM (
    SELECT type
    FROM T2
    ) AS T1;
--Prepare the PIVOT query using the dynamic 
SET @dml = N'SELECT ' + @ColumnName + ' FROM
  (
  SELECT type,
        Value
 FROM T2
) AS T1
PIVOT (Min(Value)
FOR type IN (' + @ColumnName + ')) AS PVT'
--Print @DynamicPivotQuery
--Execute the Dynamic Pivot Query
EXEC sp_executesql @dml
This will give you the desired result.
