Using Prepare

CREATE PROCEDURE `sp_DisplayAllAccounts`(accountType VARCHAR(10))
BEGIN
    DECLARE thisSQL VARCHAR(300) DEFAULT '';
    
    CASE accountType
        WHEN 'Agent' THEN
            SET thisSQL = CONCAT("SELECT CAST(AgentID AS CHAR) AS id, ",
                "CAST(CONCAT(LastName, ', ', ' ',FirstName, ' ', AgentId) AS CHAR) AS agent ",
                "FROM agent WHERE FirstName IS NOT NULL AND LastName <> 'Vendor' ",
                "ORDER BY LastName, FirstName;");
        WHEN 'Office' THEN
            SET thisSQL = CONCAT("SELECT OfficeID AS id, CAST(CONCAT(OfcName, ' ID: ', MainOfcID) AS CHAR) ",
                "AS office FROM office UNION ",
                "SELECT OfficeID AS id, CAST(CONCAT(OfcName, ' ID: ', OfficeID) AS CHAR) ",
                "AS office FROM office ",
                "WHERE MainOfcID <> OfficeID ORDER BY office;");
        ELSE
            SET thisSQL = CONCAT("SELECT 'Account Type ", accountType, " is not available.");
    END CASE;
        
    SET @theSQL = thisSQL;
    PREPARE runSQL FROM @theSQL;
    EXECUTE runSQL;
    DEALLOCATE PREPARE runSQL;
END