This is an old revision of the document!


DRAFT

Omnidex SQL Statement: SELECT

Description

The Omnidex SQL Select statement is the primary statement used to query records on Omnidex enhanced data.

Omnidex will automatically optimize the SELECT statement using Omnidex indexes.

Syntax

The concise syntax for the Omnidex SELECT statement is the following:

  SELECT expression_list
      FROM data_source
      [ WHERE clause ]
      [ GROUP BY expression_list ]
          [ HAVING predicates ]
      [ ORDER BY expression_list ]
      [ ON [ CURSOR ] cursor_no ] | [ INSTANCE instance_no ]
      [ WITH options ]

Expression_list syntax:

  expression_list
         [ < TOP (n) 
             [ SKIP(n) | EVERY(n) | RANDOM (n [, seed] ) ] ]
         [ < DISTINCT column_spec | ALL >]
         [ SAMPLE(‘control_break’ [, ’qualifier’]) ] 
         [ UNION [ALL] | INTERSECT | EXCEPT ]
         [ * ] | [ column_spec [column_alias] [, column_spec ... ]
         [ (subquery) ]
         [ aggregate_function( column_spec ) [column_alias] ]
         [ function( column_spec ) ]
         [ column_spec < + | - | / | * > <column_spec | value > [column_alias] ]
         [ $uniquekey | $odxid ]
         

FROM Clause Syntax:

  FROM [database.]table1 [ table_alias ] [, [database.]table2 [ table_alias ] [ $omnidex ] ]
       [[ < LEFT | RIGHT >][ OUTER ] ]
           [ JOIN [database.]table2 ]
           [ ON table1.linkfield = table2.linkfield ]
           [ <AND | OR> NOT] [database.]tableN.linkfield = [database.]tableN.linkfield ]

WHERE Clause Syntax:

  WHERE [ criteria_list ]
        [ EXISTS (subquery) ]
        [ IN (subquery) ]

GROUP BY/HAVING Clause Syntax:

  GROUP BY group_by_columns
      [ HAVING [ left_operand operator subquery ]
             [ left_operand IN (subquery) ] ]

ORDER BY Clause Syntax:

  ORDER BY [ column_spec | column_position ] [ ASC | DESC ] 
           [, column_spec | column_position ] [ ASC | DESC ]

WITH Clause Syntax:

  WITH options

Discussion

Expression_list

The expression_list can be one of the following:

* All columns for the named tables using a syntax of [/[ database. ] table. ]] *
column A column, optionally qualified by a table, optionally with an alias using a syntax of [/[database.]table.]column [/[AS] column_alias]]
(subquery) A nested subquery that returns a single select item.
expression A standard SQL or Omnidex-specific function

FROM Clause

table_list table_spec [join_syntax ]

Table_spec can be one of the following:

table A table using a syntax of [database.]table.
$OMNIDEX An internal table automatically created and used for testing consisting of one row and one column.
(subquery) A nested subquery.

WHERE Clause

GROUP BY Clause

HAVING Clause

ORDER BY Clause

The ORDER BY clause returns selected rows in ascending or descending order by the specified column or the ordinal position of a column in the column list.

select trans_date, trans_amount from trans_table order by trans_date;
select trans_date, trans_amount from trans_table order by 2;

The Order by column can be in the format of [database.][table.]column or table_alias.column.

select trans_date, trans_amount from trans_table order by db1.trans_table.trans_amount;

Column can also be an alias name of the table's column or an alias name of an expression.

select trans_date, trans_amount - discount NetAmount from trans_table order by NetAmount;

The ASC/DESC modifier can be used to return the data in ascending or descending order with ascending order being the default.

select trans_date, trans_amount from trans_table order by trans_date desc;

WITH options

PRESERVE_CRITERIA

PRESERVE_CRITERIA_ORDER

Examples

Select all columns from table

> select * from mytable

Select with Omnidex criteria on Quicktext column

> select company, contact from mytable where company = 'Information';
 
Back to top
dev/sql/statements/select/home.1278043657.txt.gz · Last modified: 2016/06/28 22:38 (external edit)