Please indicate which database technology you're using. In SQL Server, PIVOT is a fine choice. In ORACLE, CONNECT BY syntax might work.
If your types are fixed and don't mind an ugly query that will work pretty much anywhere, the following will suffice:
SELECT
T.UID,
MIN((SELECT Limit FROM TheTable A WHERE A.UID = T.UID AND Type = 'A')) A,
MIN((SELECT Limit FROM TheTable B WHERE B.UID = T.UID AND Type = 'B')) B,
MIN((SELECT Limit FROM TheTable C WHERE C.UID = T.UID AND Type = 'C')) C
FROM TheTable T
GROUP BY T.UID
The MIN function is used to avoid complaints from the database server about not including columns A, B, and C in your GROUP BY clause.
Sloppy and slow, but it works.
Another approach that may be quicker in most database systems (be wary of cartesians here if one type has multiple records per UID):
SELECT
Driver.UID,
A.Limit A,
B.Limit B,
C.Limit C
FROM TheTable Driver
INNER JOIN TheTable A ON Driver.UID = A.UID AND A.Type = 'A'
INNER JOIN TheTable B ON Driver.UID = B.UID AND B.Type = 'B'
INNER JOIN TheTable C ON Driver.UID = C.UID AND C.Type = 'C'