private static string[] SplitFiterValues(string filterValue)
string[] values = (filterValue ?? "").Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
public static void Main()
string matNumbersString = string.Join("', '", SplitFiterValues("2;3"));
string batchNumbersString = string.Join("', '", SplitFiterValues(""));
string dmsIdsString = string.Join("', '", SplitFiterValues(""));
if(string.IsNullOrEmpty(matNumbersString) && string.IsNullOrEmpty(batchNumbersString) && string.IsNullOrEmpty(dmsIdsString))
string sql = string.Format(@"select DISTINCT
from BT_PROCESS_MONITORING.DEVIATION_RECORD_DETAILS d where
('{0}' = '' OR d.dms_material_number in ('{0}'))
AND ('{1}' = '' OR d.dms_batch_number in ('{1}'))
AND ('{2}' = '' OR d.record_id in ('{2}'))",matNumbersString,batchNumbersString,dmsIdsString);