Sunday, 29 April 2012

Dynamic SQL query when number of fields in where clause in not known

suppose we have a front end where user can select different filters to narrow down the query results.In this case it is not already known which all fields user will select.
A dynamic query for this case can be constructed using this trick:

here fieldNames is the array containing names of all filters and fields is the array containing values provided by user.

String query="SELECT * from tableName";
String prefix=" WHERE ";  //notice spaces before and after WHERE
for(int i=0;i<fields.length;i++){
      if(fields(i)!=null)
        {query=query+prefix+fieldNames(i)+" = "+fields(i);
          prefix=" OR "    //notice spaces before and after OR
         }
}

1 comment:

  1. Great work !!! Keep it up...

    ReplyDelete