DB2 – система управления реляционными базами данных. Заданное число упорядоченных столбцов и неупорядоченные строки, страница 13

                  George                                                            Dick

Tom                                                              Harry

                    Mike

Sandy

Elenor

Gary                                               SELECT * FROM table

Grace                                                   WHERE name

Harry                                        IN (‘Fred’,’Tom’,’Dick’,’Harry’)

Samanta

 


Предикат IN позволяет определять список величин, участвующих в сравнении.

Например:

SELECT * FROM names

WHERE LastName IN (Smith, Jones, Bloggs)

В результате будут возвращены те строки, у которых значение LastName совпадает с одним из перечисленных в списке.

Альтернативой является создание требуемого числа эквивалентных тестов:

SELECT * FROM names

WHERE LastName = Smith

OR LastName = Jones

OR LastName = Bloggs

Вариант с использованием IN более простой.


IS NULL

SELECT * FROM company

WHERE add2 IS NULL

Если значение столбца не определено (не известно), DB2 устанавливает для него NULL - значение.

Используя IS NULL мы можем выбрать строки, у которых не определено значение заданного столбца

Например:

SELECT * FROM names

WHERE PhoneNum IS NULL

Этот запрос возвращает информацию о всех служащих, чьи телефонные номера не помещены в базу данных.


NOT

ТаблицаРезультат


Peter                                                               Peter

George                                                            George

Tom                                                                Mike

Mike                                                               Sandy

                   Sandy                                                               Elenor

Elenor                                                                Gary

Gary                                                                 Grace                          

Grace                                                            Samantha                                         

                    Harry                                       

Samanta

 


                                                                                      SELECT * FROM table

                                                                                                WHERE name

                                                                                      NOT IN                                         

                                                                                      (‘Fred’,’Tom’,’Dick’,’Harry’)                        

NOT – модификатор, который может быть использован для изменения смысла любого предиката отрицанием. Результатом будет любая строка, которая не удовлетворяет заданному критерию.

Например:

SELECT * FROM names

WHERE PhoneNum IS NOT NULL

В результате будут возвращены все строки данных для людей, чьи телефонные номера определены (не пусто).


Сложныеусловия

  SELECT * FROM company

ПервоеусловиеWHERE add2 IS NULL

AND                                  Соединитель

    Второе условие                      town = ‘Harlow’

 


Соединителями могут быть:

AND

OR

WHERE может включать более одного предиката. Объединить предикаты вы можете используя соединитель AND или OR.

AND используется чтобы ограничить результат такими строками, которые удовлетворяют обоим условиям.

Например:

SELECT * FROM sales_person

WHERE town LIKE ‘Stoke%’

AND dept = 4

Этот запрос выведет строки таблицы для людей, которые живут в любом городе начинающимся со Stoke и работают в четвертом отделе.

OR используют для вывода строк, удовлетворяющих одному из условий:

SELECT * FROM sales_person WHERE town LIKE ‘Stoke%’ OR town = ‘London’

На экран будет выведена информация о любом человеке, который живет в каком-нибудь городе, название которого начинается со строки Stoke, или живет в Лондоне.