Yo en estos casos lo que hago es lo siguiente:
Siempre construyo las consultas con el siguiente truco en el WHERE
Código SQL
[-]SELECT ID, NOMBRE, DIRECCION, POBLACIÓN
FROM CM_CLIENTES
WHERE 1=1
Otro es poner marcas de sustitución en el SQL:
Código SQL
[-]SELECT ID, NOMBRE, DIRECCIÓN, POBLACIÓN
FROM CM_CLIENTES
WHERE 1=1
Cada una de estas marcas o comentarios los sustituyo por lo que corresponda en función de lo que haya seleccionado el usuario.
En mi caso todas las SQL de las aplicaciones están en BBDD y se leen y cargan donde y cuándo son requeridas.