SQL convertir filas en columnas

Sé que esto se ha pedido varias veces antes, pero no puedo encontrar ninguna solución que se ajuste a mi ejemplo.

Actualmente tengo una tabla de permisos de usuario para usar ciertas páginas. La mesa se vería así:

UserID    pagename         pageid
-----------------------------------
1         home             1
1         contacts         3
3         home             1
2         links            2

¿Cómo generaría una tabla a partir de estos datos donde tengo todos los nombres de página tabulados como columnas y cada fila de la tabla es para una ID de usuario? esa página en particular, por ejemplo:

UserID     home     links    contacts
-------------------------------------
1          1        0        1
2          0        1        0
3          1        0        0

¡Su ayuda es muy apreciada!

Respuestas a la pregunta(2)

Su respuesta a la pregunta