Background documentationIN Condition Locate this document in the navigation structure

 

A IN condition is a search condition with a IN predicate. The SQL Optimizer can only evaluate an IN condition if it meets the following conditions:

The database system converts conditions of the following form, if possible, into an expression without NOT with a correspondingly negated operator:

... NOT (<column_spec> NOT IN (<extended_value_spec>,...))

... NOT (<column_spec> NOT IN <subquery>)

Example

The following example uses the demo database DEMODB with the complete demo data in the schema HOTEL (see Concepts of the Database System, Objects in the Schema HOTEL

Example Example

EXPLAIN SELECT *

  FROM hotel.customer

    WHERE name IN ('Smith','Miller')

  • Qualification: name IN ('Smith', 'Miller')

  • Primary key of CUSTOMER table: cno

  • Indexes via qualified columns: FULL_NAME_INDEX (name,firstname)

  • Search strategy: RANGE CONDITION FOR INDEX

End of the example.

To find all data records with the name Smith and Miller, the database system can use the strategy FULL_NAME_INDEX (name,firstname).

Result of the EXPLAIN statement

TABLENAME

COLUMN_OR_INDEX

STRATEGY

PAGECOUNT

CUSTOMER

FULL_NAME_INDEX

RANGE CONDITION FOR INDEX

34

NAME

(USED INDEX COLUMN)

RESULT IS NOT COPIED, COSTVALUE IS

21

You can find additional simple example SQL statements in the SQL Tutorial.