Most freshwater fish species living in rivers and streams have a tendency of swimming against the current, i.e. upstream. This is probably for compensation for downstream drift during floods etc.
Besides these small-scale movements, there may be long distance migrations for spawning or feeding.
Long distance upstream spawning migrations are found in many adult salmonids, acipenserids and petromyzontids, some cyprinids and siluriforms, as well some freshwater gobiids. Young specimens, however, migrate downstream towards the ocean or lakes.
Long distance downstream migrations for spawning are typical for adult eels (Anguillidae); in young specimens we find the opposite upstream migration.
Anthropogenic barriers (like dams) may form a barrier to upstream migration; this is why fish passes are constructed in many regions to assist threatened fish species in their upstream migration.Unfortunately, most fish passes are only constructed to assist the upstream migration component. As downstream migration is very important in certain life stages of fish species as well, we need to consider this aspect for fish pass construction as well. Otherwise, downstream migration may pass through the turbines of the hydroelectric power stations which often associated with dams, resulting in severe damage to the fishes.
One interesting question is: why salmons go upstream to their birthplaces to lay eggs? One theory is that their offspring can drift downstream. I guess swim upstream is good for feeding (i.e., catching food).
The most interesting and intriguing thing about this is that fish seem to swim upstream effortlessly.