Você não menciona se as colunas são anuláveis. Se eles são e você quer a mesma semântica que o
AVG
agregado fornece que você pode fazer (2008) SELECT *,
(SELECT AVG(c)
FROM (VALUES(R1),
(R2),
(R3),
(R4),
(R5)) T (c)) AS [Average]
FROM Request
A versão de 2005 é um pouco mais tediosa
SELECT *,
(SELECT AVG(c)
FROM (SELECT R1
UNION ALL
SELECT R2
UNION ALL
SELECT R3
UNION ALL
SELECT R4
UNION ALL
SELECT R5) T (c)) AS [Average]
FROM Request