Nested case inside awk

please let me know if the below code could be written efficiently inside single awk

case "$INP" in
ksh)
cat catalog | awk 'BEGIN {FS=",";}     { print $2 }  END {}' 
;;
pset)
cat catalog | awk 'BEGIN {FS=",";}     { print $3 }  END {}' 
;;
dml)
cat catalog | awk 'BEGIN {FS=",";}     { print $4 }  END {}' 
;;
esac

How about this ?

awk -F"," -vinput="$INP" '{if(input ~ /ksh/){print $2}
                        if(input ~ /pset/){ print $3 }
                        if(input ~ /dml/) { print $4 }
                        }' filename
# awk -vinp=$INP -vi=2 'inp=="ksh"{print $i};inp=="pset"{print $(i+1)};inp=="dml"{print $(i+2)}'  FS=","