Advanced queries

Basic queries can be joined by logical operators and grouped by parentheses to form an advanced query.

The logic AND is implemented using SQL’s INTERSECT and the logic OR is implemented with UNION ALL.

When basic queries in the advanced query are run, the result set is unioned or intersected using SQL’s UNIOR ALL or INTERSECT separately. This is accomplished according to the operators of the basic queries.

These are the advanced queries and their corresponding SQL statements:
Query Code
<Filed Name1>=value1 and

<Filed Name2>=value2

select rowid from smat_msgs where smatregexp(‘regex1’, rowid, ‘database alias’) > 0
INTERSECT
select rowid from smat_msgs where smatregexp(‘regex2’, rowid, ‘database alias’) > 0
<Filed Name1>=value1 and

<Filed Name2>=value2

select rowid from smat_msgs where smatregexp(‘regex1’, rowid, ‘database alias’) > 0
INTERSECT
select rowid from smat_msgs where smatregexp(‘regex2’, rowid, ‘database alias’) > 0
(<Filed Name1>=value1 or <Filed Name2>=value2) and

<Filed Name3>=value2

Select rowid from 
(select rowid from smat_msgs where smatregexp(‘regex1’, rowid, ‘database alias’) > 0
UNION ALL
select rowid from smat_msgs where smatregexp(‘regex2’, rowid, ‘database alias’) > 0
)
INTERSECT
select rowid from smat_msgs where smatregexp(‘regex3’, rowid, ‘database alias’) > 0
(<Filed Name1>=value1 and <Filed Name2>=value2) or

<Filed Name3>=value2

Select rowid from 
(select rowid from smat_msgs where smatregexp(‘regex1’, rowid, ‘database alias’) > 0
INTERSECT
select rowid from smat_msgs where smatregexp(‘regex2’, rowid, ‘database alias’) > 0
)
UNION ALL
select rowid from smat_msgs where smatregexp(‘regex3’, rowid, ‘database alias’) > 0