Проверка на пустое значение
Если столбцы ваших таблиц, входящих в условие поиска могут иметь пустое значение, то вам следует проявлять бдительность, задавая проверку их значений на NULL. Всегда следует перед выполнением "нормальных" проверок уточнить, не является ли значение пустым. Мы можем использовать два варианта: <значение> IS NULL и <значение> IS NOT NULL Еще раз повторю, это действительно может стать источником больших ошибок — перед обычной, нормальной, проверкой проверяйте значения на NULL. Поиск в строковых столбцах Для строковых значений используются варианты LIKE, CONTAINING и STARTING WITH. Напомню синтаксис: ... | <значение> [NOT] LIKE <значение> | <значение> [NOT] CONTAINING <значение> | <значение> [NOT] STARTING [WITH] <значение> ... Вариант LIKE В варианте LIKE строковое значение должно содержать указанные символы. В этом варианте можно использовать шаблонные символы: процент (%) означает любое, в том числе и нулевое количество любых символов, знак подчеркивания (_) означает ровно один любой символ. LIKE является чувствительным к регистру, т. е. различает строчные и прописные буквы. На самом деле это неприятное ограничение можно очень легко и безболезненно обойти, применяя для имени столбца, используемого в выражении, функцию UPPER, которая возвращает все буквенные данные в верхнем регистре в любом, допустимом для набора используемых символов, алфавите. Выберем строки из таблицы PERSON, введя условие, по которому фамилия должна заканчиваться на "ОВ". Для этого перед буквами "ОВ" используем шаблонный символ %.[19] SELECT PR_NAME2 AS "Имя", PR_NAME3 AS "Отчество", PR_NAME AS "Фамилия" FROM PERSON WHERE PR_NAME LIKE '%ов' Листинг 12. Выборка людей в варианте LIKE '%в'
Расширим условие поиска, выполним:[20] SELECT PR_NAME2 AS "Имя", PR_NAME3 AS "Отчество", PR_NAME AS "Фамилия" FROM PERSON WHERE UPPER( PR_NAME ) LIKE '%ов%' Мы добавили еще знак процента в условие: LIKE '%ов%'. То есть не только до, но и после символов "ов" может располагаться любое, в том числе и нулевое, количество любых символов. Теперь мы также получаем и женские фамилии. Поскольку вариант LIKE является чувствительным к регистру, у вас, казалось бы, должны быть сложности при поиске данных, если вы не следовали моим мудрым советам и не вводили подобные строки в верхнем регистре. На самом деле ничего особенно страшного не произойдет. Даже если данные у вас введены вперемежку и прописными, и строчными буквами, вы можете использовать функцию UPPER, которая переведет все буквы строки в верхний регистр. Повторю — это относится только к символам алфавита, поддерживаемого вашим набором символов для этого столбца. Предыдущий запрос можно записать следующим образом: [21]
SELECT PR_NAME2 AS "Имя", PR_NAME3 AS "Отчество", PR_NAME AS "Фамилия" FROM PERSON WHERE UPPER( PR_NAME ) LIKE '%ов%'
Теперь покажем как воспользоваться знаком подчеркивания (_). Найдем всех людей у которых “ов” начинается со второго символа:[22] SELECT PR_NAME2 AS "Имя", PR_NAME3 AS "Отчество", PR_NAME AS "Фамилия" FROM PERSON WHERE UPPER( PR_NAME ) LIKE ‘ _ов%' В результате получим Листинг 13. Список людей, у которых в фамилии после первого символа следует 'ов' (выборка в варианте LIKE '_ов%')
Читайте также: II. Проверка исправности радиометра. Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|