Get referenced table column in a select list item

This simple demo illustrates how to get table and columns involved in a select list item like this:

select sal.income + sal.bonus * emp.age + 5 as real_sal,
       emp.name as title 
from employee emp, salary sal 
where emp.id=sal.eid

What this demo do is tell you that in select list item:

sal.income + sal.bonus * emp.age + 5 as real_sal

columns been referenced are listed below:

salary.income
salary.bonus
employee.age

General SQL Parser can handle this well no matter how complex the select list item is. If combine this demo together with this demo: Visit SQL statement recursively, then it’s easy to get information such as which columns (with their respective tables) provide the data of the result set, no matter which set operation (union, minus) they are in, no matter how deeply embedded in select-clause subqueries they are, etc.

Download demo: Java version