diff --git a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
index 05deebc41..eb32c06f2 100644
--- a/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
+++ b/web/pgadmin/tools/sqleditor/static/js/sqleditor.js
@@ -3544,17 +3544,33 @@ define('tools.querytool', [
               // Remove deleted rows from client as well
               if (is_deleted) {
                 var rows = _.keys(self.data_store.deleted);
+
                 if (data_length == rows.length) {
                 // This means all the rows are selected, clear all data
                   data = [];
                   dataView.setItems(data, self.client_primary_key);
                 } else {
                   dataView.beginUpdate();
-                  for (var j = 0; j < rows.length; j++) {
-                    var item = grid.getDataItem(rows[j]);
-                    data.push(item);
-                    dataView.deleteItem(item[self.client_primary_key]);
+
+                  var selectedRows = RangeSelectionHelper.getIndexesOfCompleteRows(grid, grid.getSelectionModel().getSelectedRanges());
+
+                  var primary_keys = _.values(self.data_store.deleted);
+
+                  for (var j = 0; j < selectedRows.length; j++) {
+                    var item = grid.getDataItem(selectedRows[j]);
+                    _.each(primary_keys, function(v) {
+
+                      let actual_prim_delete_key = _.keys(v)[0];
+                      let actual_prim_delete_value = _.values(v)[0];
+                      let selected_prim_delete_value = item[actual_prim_delete_key];
+
+                      if(actual_prim_delete_value == selected_prim_delete_value) {
+                        data.push(item);
+                        dataView.deleteItem(item[self.client_primary_key]);
+                      }
+                    });
                   }
+
                   dataView.endUpdate();
                 }
                 self.rows_to_delete.apply(self, [data]);
