-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Examples of SQL analyzing
Tobias edited this page Nov 13, 2019
·
1 revision
The task here is to build a map, where the alias is the key and the expression to this alias the value of one Map entry.
Select stmt = (Select) CCJSqlParserUtil.parse("SELECT col1 AS a, col2 AS b, col3 AS c FROM table WHERE col1 = 10 AND col2 = 20 AND col3 = 30");
Map<String, Expression> map = new HashMap<>();
for (SelectItem selectItem : ((PlainSelect)stmt.getSelectBody()).getSelectItems()) {
selectItem.accept(new SelectItemVisitorAdapter() {
@Override
public void visit(SelectExpressionItem item) {
map.put(item.getAlias().getName(), item.getExpression());
}
});
}
System.out.println("map " + map);
Selected items of a SQL could be of different type. We are now interested in so called SelectExpressionItems. These are those consisting of an expression optionally named by an alias. So with a SelectItemVisitor we are filtering those items. Directly from our SelectExpressionItem we can get the alias and the expression.
This will then return:
map {a=col1, b=col2, c=col3}