Cita: pero algunos de las variables que uso como condiciones vienen vacios, ya que los usuarios hacen consultas con solo 2 paramentros de los 30 posibles...
En ese caso hay que resolver el problema en la aplicación, donde vas validando los datos que no entraron, y por cada dato ingresado le vas agregando al WHERE la condición de búsqueda adecuada, y si no se ingresó, no se le pone.
De ese modo la sentencia se crea como string sólo con aquellos parámetros que el usuario ingresó, y por tanto no aparecerán en la consulta las demás.
Este tipo de construcción dinámica de una sentencia es ajena a este foro, porque son cosas que haces en la programación. La gente de los foros de programación que trabaja con base de datos lo hace constantemente, por lo que te recomiendo preguntar allí (o usar el buscador de ese foro), para ver ejemplos de cómo se hace.
Si quieres, puedo moverte el post para ese foro, si me dices en qué trabajas.