diff --git a/sqllineage/core.py b/sqllineage/core.py
index 2faa914..fbfff54 100644
--- a/sqllineage/core.py
+++ b/sqllineage/core.py
@@ -18,7 +18,7 @@ class LineageParser(object):
         self._encoding = encoding
         self._source_tables = set()
         self._target_tables = set()
-        self._stmt = sqlparse.parse(sql.strip(), self._encoding)
+        self._stmt = [s for s in sqlparse.parse(sql.strip(), self._encoding) if s.get_type() != "UNKNOWN"]
         for stmt in self._stmt:
             if stmt.get_type() == "DROP":
                 self._target_tables -= {t.get_real_name() for t in stmt.tokens if isinstance(t, Identifier)}

diff --git a/tests/test_others.py b/tests/test_others.py
index 7e0a287..9a0b89f 100644
--- a/tests/test_others.py
+++ b/tests/test_others.py
@@ -43,3 +43,10 @@ def test_split_statements():
 def test_split_statements_with_heading_and_ending_new_line():
     sql = "\nSELECT * FROM tab1;\nSELECT * FROM tab2;\n"
     assert len(LineageParser(sql).statements) == 2
+
+
+def test_split_statements_with_comment():
+    sql = """SELECT 1;
+
+-- SELECT 2;"""
+    assert len(LineageParser(sql).statements) == 1

Empty Statement return
take the following sql as example

```sql
SELECT 1;

-- SELECT 2;
```

the parsing result says that it contains two statements, instead of one.
tests/test_others.py::test_split_statements_with_comment
tests/test_others.py::test_use tests/test_others.py::test_create tests/test_others.py::test_create_if_not_exist tests/test_others.py::test_create_after_drop tests/test_others.py::test_drop tests/test_others.py::test_drop_with_comment tests/test_others.py::test_drop_after_create tests/test_others.py::test_create_select tests/test_others.py::test_split_statements tests/test_others.py::test_split_statements_with_heading_and_ending_new_line