Al final hice otra consulta SQL para obtener lo que buscaba, pero sigo estando muy interesado en saber que devuelve oracle en casos como los que he puesto antes.
Espero que alguien lo sepa para quitarme de encima esa duda.
Como dice un amigo mio... Lo que más me pudre es no saber el porqué!
Esta es la consulta que he hecho al final (por si le interesa a alguien
)
SELECT DISTINCT
CASE WHEN (SELECT COUNT(*) FROM MICRO.TBL_USER U
WHERE U.USERNAME = 'MACGREGOR')=0
THEN (SELECT MAX(U.ID_USER)+1 FROM MICRO.TBL_USER U)
ELSE 0
END
FROM MICRO.TBL_USER U
gracias de antemano