diff --git a/handlers/views_handler_filter_combine.inc b/handlers/views_handler_filter_combine.inc
index 915924b..39e7056 100644
--- a/handlers/views_handler_filter_combine.inc
+++ b/handlers/views_handler_filter_combine.inc
@@ -66,13 +66,25 @@ class views_handler_filter_combine extends views_handler_filter_string {
       $count = count($fields);
       $separated_fields = array();
       foreach ($fields as $key => $field) {
-        $separated_fields[] = $field;
+        if(db_driver() == 'sqlsrv') {
+          $separated_fields[] = 'CONVERT(nvarchar(max),ISNULL(' . $field . ',\'\'))';
+        }
+        else {
+          $separated_fields[] = $field;
+        }
         if ($key < $count - 1) {
           $separated_fields[] = "' '";
         }
       }
-      $expression = implode(', ', $separated_fields);
-      $expression = "CONCAT_WS(' ', $expression)";
+      
+      // CONCAT_WS does not exist in SQL Server version below 2012.
+      if(db_driver() == 'sqlsrv') {
+        $expression = '(' . implode('+', $separated_fields) . ')';
+      }
+      else {
+	    $expression = implode(', ', $separated_fields);
+        $expression = "CONCAT_WS(' ', $expression)";
+      }
 
       $info = $this->operators();
       if (!empty($info[$this->operator]['method'])) {
