Vous devez utiliser SELECT ... INTO
SELECT
...
INTO var_name [, var_name]]
au lieu de set
pour affecter le résultat d'un SELECT à une variable. Donc ça devrait le faire :
SELECT CASE
WHEN @[email protected] THEN "emp"
WHEN @vgls>@lgls THEN "loc"
WHEN @vgls<@lgls THEN "vis" END
INTO @st;