call spQuery_Lista_Cliente_Simple(12,null, null);

DROP PROCEDURE IF EXISTS spQuery_Lista_Cliente_Simple;
CREATE PROCEDURE spQuery_Lista_Cliente_Simple(	
  varCodigo     int,
  varNombre     varchar(50),
  varDireccion  varchar(50)
)
BEGIN 
  declare varCadCod, varCadNom, varCadDir text default '';
  
  if varCodigo is not null then
    set varCadCod = concat(" and C.id_cliente = ", varCodigo, " ");
  end if;
  if IFNULL(varNombre,'') <> '' then
    set varCadNom = concat(" and C.nombre like '%", varNombre, "%' ");
  end if;
  if IFNULL(varDireccion,'') <> '' then
    set varCadDir = concat(" and C.direccion like '", varDireccion, "' ");
  end if;
  
  set @sql = CONCAT("select C.id_cliente AS CCLI, C.nombre AS CLIENTE, DIRECCION, DNI, RUC ",
                    "from _sv_cliente C ",
                    "where C._estado='A' ",
                    varCadCod, varCadNom, varCadDir);
  PREPARE s1 FROM @sql;
  EXECUTE s1;
  DEALLOCATE PREPARE s1;
END;