Мы можем добиться использования динамически с концепцией PIVOT, но какие бы данные поля [Type] не соответствовали фактическому имени поля, они должны отличаться
CREATE TABLE PivotTable (Id INT,Value VARCHAR(100),[Type] VARCHAR(100))
INSERT INTO PivotTable VALUES
(1,'ABC Bank','Bank')
,(1,'User','Name')
,(1,'123','IDs')
,(1,'user@email.com','Email')
,(1,'Banking','Reference')
SELECT * FROM PivotTable
DECLARE @Columns NVARCHAR(MAX),
@SQL NVARCHAR(MAX)
SET @Columns = STUFF((SELECT DISTINCT ','+[Type] FROM PivotTable FOR XML PATH('')),1,1,'')
SET @SQL = 'SELECT Id,'+@Columns+' FROM
(
SELECT Id,
Value,
[Type]
FROM PivotTable
) P
PIVOT
(
MAX(Value) FOR [Type] IN ('+@Columns+')
)pvt'
EXEC (@SQL)