Предположим, у вас есть три текстовых поля, которые вы можете использовать для поиска данных. Каждое текстовое поле будет соответствовать столбцу таблицы DB2. Строка поиска, которую вы вводите, будет вставлена в предложение where. Например, у вас есть имя, фамилия и номер телефона. Если вы не вводите данные в конкретное текстовое поле, я по умолчанию его значение в предложении where на «_», символ подстановки, чтобы выбрать все. Кроме того, можно сказать, что номер телефона определен как NULL на столе.Столбцы для обработки DB2, определенные как null
Cursor1 будет использоваться, если пользователь ввел номер телефона для поиска. Так, где положение будет выглядеть примерно так:
Где FIRST_NAME, как: Firstname И LAST_NAME как: Lastname И PHONE_NBR как: количество
Это работает, когда вводятся данные для номера телефона. Но если поиск выполняется только для First Name, курсор возвращает частичные или никакие результаты, потому что переменная host: number будет заполнена подстановочным знаком «_». PHONE_NBR, например «_», вернет строки, имеющие реальное значение. Если для строки PHONE_NBR есть нуль для строки, которая соответствует первому имени, которое вы искали, эта строка не будет отображаться. Поэтому я создал второй курсор.
Cursor2 будет использоваться, если пользователь НЕ ВХОДИТ в телефон номер для поиска ИНЕКЕ выглядит примерно так
Где FIRST_NAME, как:.. Firstname И LAST_NAME как: фамилия и (PHONE_NBR как: номер OR PHONE_NBR IS NULL)
Итак, если поиск был выполнен только для первого имени, а некоторые значения в PHONE_NBR имеют данные, некоторые из них равны null, ВСЕ, которые соответствуют первому имени, которое будет искать, будут отображаться в результатах - что хорошо. Для строк со значениями в PHONE_NBR, PHONE_NBR, как '_', получит их. Для строк с нулевым значением в PHONE_NBR, PHONE_NBR IS NULL получит их.
Это незначительное, но необходимое различие. Из-за этой незначительной разницы я хотел бы объединить эти два курсора в один. Как это можно сделать для достижения тех же результатов?
Не знаете, что вы просите. Второй курсор будет содержать все строки, которые были в первом курсоре плюс любые строки, содержащие NULL для PHONE_NBR. –