Skip to main content

This article is about SQL conditions as part of the SQL syntax that USoft supports.

SQL conditions

SQL conditions are used:

  • In WHERE and HAVING clauses in queries and subqueries.
  • In ON clauses in join constructs.

Syntax

USoft supports all industry-standard SQL condition constructs. These syntax options are an integral part of the standard SQL language. There are no USoft extensions in this area.

condition-list       ::=  condition  logical-connector  condition ...

condition ::= { operand comparison-operator operand |
NOT( operand comparison-operator operand ) }

operand ::= { column-expression | literal }

comparison-operator ::= { math-operator | sql-operator }
math-operator ::= { = | != | > | >= | < | <= | <> }
sql-operator ::= {
{ LIKE | IN | EXISTS | BETWEEN } |
NOT { LIKE | IN | EXISTS | BETWEEN } |

IS NULL |
IS NOT NULL
}

logical-connector ::= { AND | OR }

The syntax of sql-operator constructs is not detailed above. These constructs are all different: LIKE calls for a wildcard pattern and has an optional ESCAPE clause, IN calls for an enumeration, EXISTS for a subquery, and BETWEEN for two column expressions connected by AND, while IS NULL is an operator for comparing a value with the NULL value. See SQL operators for details.

Example 1

This condition matches ARISTO products with an ID not higher than 6000 produced after February 1, 2022:

      product_name = 'ARISTO'
AND product_id <= 6000
AND production_date > CHAR_TO_DATE( 'DD-MON-YYYY', '01-FEB-2022' )

Example 2

This condition matches ARISTO products except all ARISTO products from Australia and except all ARISTO products of type Consumer:

        product_name = 'ARISTO'
AND NOT ( country = 'AUSTRALIA' OR type = 'CONSUMER' )

Example 3

This conditions matches all tours to Brazil that do not have a guide:

t.destination = 'BRAZIL'
AND NOT EXISTS (
SELECT ''
FROM person p
WHERE p.person_id = t.guide_id
)

 

Be the first to reply!

Reply