Non, vous ne pouvez pas utiliser un SELECT comme vous le souhaitez.
Dans votre exemple utilisant CASE, vous n'utilisez pas une "instruction" CASE - vous utilisez une expression CASE , qui se trouve être intégré dans une instruction SQL. Vous pouvez utiliser une sous-requête dans ce cas, car elle se situe dans le contexte d'une instruction SQL, et non d'une instruction procédurale. Vous ne seriez pas en mesure d'utiliser une sous-requête comme celle-ci dans une instruction procédurale CASE.