DELIMITER $$ DROP PROCEDURE IF EXISTS `sead`.`grab_id_and_name`$$ CREATE PROCEDURE `sead`.`grab_id_and_name` ( IN in_schema varchar(50), IN in_table varchar(50), IN in_type varchar(50) ) grab:BEGIN CASE in_table WHEN "person" THEN SELECT `id`, `first_name`, `last_name` FROM in_schema.in_table WHERE `type` = in_type ORDER BY last_name DESC; LEAVE grab; WHEN "business" THEN SELECT `id`, `business_name` FROM in_schema.in_table WHERE `type` = in_type ORDER BY business_name DESC; LEAVE grab; ELSE LEAVE grab; END CASE; END$$ DELIMITER ;