This is an old revision of the document!


Omnidex SQL Syntax

Omnidex Queries are typically specified using an Omnidex SQL SELECT statement.

Select List

DISTINCT

Distinct can be applied to an entire select-item list or used within an aggregate function.

SELECT DISTINCT city, state FROM prospects
SELECT count(DISTINCT zip_code) FROM prospects

Result Set Limiters

Result set limiters limit the rows returned by the select statement. The result set limiter processing is done AFTER the query has completed.

TOP n, EVERY n, RANDOM n

SELECT TOP 10 company FROM prospects
SELECT EVERY 20 company FROM prospects
SELECT RANDOM 10 company FROM prospects

These result set limiters do not order returned data in any way. Ordering is set by the ORDER BY clause.

Column name(s)

Column names from one or more tables.

SELECT company, contact, phone FROM customers
SELECT company, contact, order_date FROM customers, orders ...

Column name(s) with an alias

An alias containing a space or special character must be quoted. Single or double quotes.

The AS keyword is optional.

SELECT company CO, contact 'Contact Name', phone "Phone Number" FROM ...
SELECT contact AS 'Contact Name', phone AS 'Phone #' FROM ...

Table-qualified column name(s)

SELECT customers.company, customers.contact, orders.order_date
  FROM customers, orders ...

Table-alias qualified column name(s)

SELECT A.company, A.contact, B.order_date FROM company A, orders B ...

Aggregate Functions

min() max() avg() sum() count() count(*)

SELECT customer_no, min(amount), max(amount), avg(amount)
  FROM orders GROUP BY customer_no
SELECT company, sum(amount) FROM ...
SELECT count(*), count(state) FROM ...

SQL92-Compliant Functions

These functions can be used on literals or columns.

CASE
CAST
CHARACTER_LENGTH | CHAR_LENGTH
Concatenation using ||
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
EXTRACT
LOWER
POSITION
SESSION_USER
SUBSTRING
SYSTEM_USER
TRIM
UPPER
USER
SELECT upper(company), upper(contact), current_date FROM ...
SELECT position('SYS' IN 'DYNAMIC INFORMATION SYSTEMS'), system_user FROM ...

Omnidex Extended Functions

Extended Functions

These functions can be used on literals or columns

Function Description
$COL_LEN Return the length of a column as defined in the environment catalog.
$COLUMN_LENGTH Return the length of a column as defined in the environment catalog.
$CONTAINS
$CONTEXT Return snippets of text from data qualified in a $CONTAINS function.
$CONVERT Convert a scalar expression from one data type to another.
$CURRENT_ROW Return the current row number.
$EXTERNAL Execute an external user-defined function.
$IFNULL Specify a return value for columns containing null values.
$LJ Left justify a string by eliminating leading white space.
$LOOKUP Retrieve textual metadata.
$LPAD Add leading “PAD” characters to a string.
$MOD Return “n modulus y” (remainder).
$PROPER Shift the first letter of each word in a string to upper case and all other letters to lower case.
$RANDOM Return a pseudo-random number.
$RJ Right justify a string by eliminating trailing white space and inserting leading spaces as needed.
$ROUND Round a numerical value to the specified number of decimal places.
$RPAD Add trailing “PAD” characters to a string.
$SCORE Returns the rank/relevancy score of qualified text from a $CONTAINS function.
$SOUNDEX Return the Soundex equivalent to a character string.
$TRUNC Return a numeric expression truncated to a specified number of digits to the right of the decimal point.
SELECT $proper(company), $random(3) FROM ...
SELECT $soundex('database') FROM ...

Literals

SELECT 'Company Name: ', company, 'Contact Name: ', contact FROM ...

Expressions

SELECT order_number, 'Discount: ', (quantity * amount)*.02 FROM ...

$ROWID, $ODXID

$ROWID returns the internal rowid. This is either the native rowid or the redefined rowid.

$ODXID is the Omnidex ID from the Omnidex indexes.

SELECT $ROWID, $ODXID, Company FROM ...

* (Asterisk)

SELECT * FROM CUSTOMERS ...
SELECT c.*, o.* FROM CUSTOMERS c, ORDERS o ...

Nested Select Statement

SELECT STATE, DESCRIPTION,
  (SELECT SUM(TOTAL) FROM ORDERS WHERE TAX_STATE='CO')
  FROM STATES WHERE STATE='CO'

FROM Clause

The FROM clause allows the following retrieval types and join operations:

  • Single Table
  • Multiple Tables (Joins)
  • Inner Joins - Join occurs in the where clause
  • Outer Joins - Left Outer Join, Right Outer Join
  • Nested Selects

Single Table

SELECT * FROM CUSTOMERS

Multiple Tables (Joins)

Join columns must have matching data types and lengths.

SELECT company, order_number FROM CUSTOMERS, ORDERS ...

Inner Joins

Tables are joined in the WHERE clause. The join predicate is 'AND'ed to other WHERE criteria predicates.

SELECT company, order_number, status FROM customers, orders WHERE
   customers.customer_no = orders.customer_no AND orders.status='CANCELED'

Outer Joins

Outer joins prevent the exclusion of records in one table that do not have records in the joined table.

SELECT company, order_number, status FROM customers c LEFT JOIN orders o ON
       c.customer_no = o.customer_no
SELECT company, order_number, status FROM customers c LEFT OUTER JOIN
       orders o ON c.customer_no = o.customer_no
SELECT company, order_number, status FROM customers c RIGHT JOIN orders o ON
       c.customer_no = o.customer_no
SELECT company, order_number, status FROM customers c RIGHT OUTER JOIN
       orders o ON c.customer_no = o.customer_no

Nested Selects

select company, contact, state from customers c,
       (select distinct customer_no from orders where status='back') AS o
       where c.customer_no = o.customer_no and state!='co'

Quick Links

 
Back to top
sql/intro.1247806970.txt.gz · Last modified: 2012/10/26 14:21 (external edit)