En realidad el problema es que estás tratando de resolver con una sentencia un proceso que debe hacerse en un Stored Procedure.
En todo caso, el problema es que la descripción de tu caso:
Cita: lo que quiero hacer es una consulta que en funcion del dia de la semana busque la hora de la actividad en el campo correcto.
choca con un problema de diseño:
Cita: tengo una tabla donde almaceno los horarios de los usuarios, tengo 7 campos, uno para cada dia de la semana, y en ellos almaceno las horas que los usuarios estan disponibles.
En realidad la tabla no debería tener 7 campos, sino en todo caso cuatro (usuario, {diaSemana, {HoraIni, HoraFin}}), de modo de poder realizar una consulta por los horarios que existen o no (más simple).
El modelo de datos que planteas requiere que tu consulta
realice una comparación por columna,
por lo menos. Lo que es muy ineficiente, ya que eso puede exigir incluso un JOIN séptuple...
Sería mejor que nos describieras la estructura de esas tablas para ver si hay una forma mejor.