Читайте также:
|
|
К логическим операторам относятся известные операторы AND, OR, NOT, позволяющие выполнять различные логические действия: логическое умножение (AND, "пересечение условий"), логическое сложение (OR, "объединение условий"), логическое отрицание (NOT, "отрицание условий"). В наших примерах мы уже применяли оператор AND. Использование этих операторов позволяет гибко "настроить" условия отбора записей.
Оператор AND означает, что общий предикат будет истинным только тогда, когда условия, связанные по "AND", будут истинны.
Оператор OR означает, что общий предикат будет истинным, когда хотя бы одно из условий, связанных по "OR", будет истинным.
Оператор NOT означает, что общий предикат будет истинным, когда условие, перед которым стоит этот оператор, будет ложным.
В одном предикате логические операторы выполняются в следующем порядке: сначала выполняется оператор NOT, затем - AND и только после этого - оператор OR. Для изменения порядка выполнения операторов разрешается использовать скобки.
SELECT first_name, last_name, dept_no,
job_code, salary
FROM employee
WHERE dept_no = 622
OR job_code = "Eng"
AND salary <= 40000
ORDER BY last_name
получить список служащих, занятых в отделе 622 или на должности "инженер" с зарплатой не выше 40000
FIRST_NAME | LAST_NAME | DEPT_NO | JOB_CODE | SALARY |
Jennifer M. | Burbank | Eng | 53167.50 | |
Phil | Forest | Mngr | 75060.00 | |
T.J. | Green | Eng | 36000.00 | |
Mark | Guckenheimer | Eng | 32000.00 | |
John | Montgomery | Eng | 35000.00 | |
Bill | Parker | Eng | 35000.00 | |
Willie | Stansbury | Eng | 39224.06 |
SELECT first_name, last_name, dept_no,
job_code, salary
FROM employee
WHERE (dept_no = 622
OR job_code = "Eng")
AND salary <= 40000
ORDER BY last_name
получить список служащих, занятых в отделе 622 или на должности "инженер", зарплата которых не выше 40000
FIRST_NAME | LAST_NAME | DEPT_NO | JOB_CODE | SALARY |
T.J. | Green | Eng | 36000.00 | |
Mark | Guckenheimer | Eng | 32000.00 | |
John | Montgomery | Eng | 35000.00 | |
Bill | Parker | Eng | 35000.00 | |
Willie | Stansbury | Eng | 39224.06 |
Преобразование типов (CAST)
В SQL имеется возможность преобразовать значение столбца или функции к другому типу для более гибкого использования операций сравнения. Для этого используется функция CAST.
Типы данных могут быть конвертированы в соответствии со следующей таблицей:
Из типа данных | В тип данных |
NUMERIC CHAR, | VARCHAR, DATE |
CHAR, VARCHAR | NUMERIC, DATE |
DATE CHAR, | VARCHAR, DATE |
SELECT first_name, last_name, dept_no
FROM employee
WHERE CAST(dept_no AS char(20))
CONTAINING "00"
получить список сотрудников, занятых в отделах, номера которых содержат "00"
FIRST_NAME | LAST_NAME | DEPT_NO |
Robert | Nelson | |
Terri | Lee | |
Stewart | Hall | |
Walter | Steadman | |
Mary S. | MacDonald | |
Oliver H. | Bender | |
Kelly | Brown | |
Michael | Yanowski |
Изменение порядка выводимых строк (ORDER BY)
Порядок выводимых строк может быть изменен с помощью опционального (дополнительного) предложения ORDER BY в конце SQL-запроса. Это предложение имеет вид:
ORDER BY <порядок строк> [ASC | DESC]
Порядок строк может задаваться одним из двух способов:
Способ упорядочивания определяется дополнительными зарезервированными словами ASC и DESC. Способом по умолчанию - если ничего не указано - является упорядочивание "по возрастанию" (ASC). Если же указано слово "DESC", то упорядочивание будет производиться "по убыванию".
Подчеркнем еще раз, что предложение ORDER BY должно указываться в самом конце запроса.
Дата добавления: 2014-12-15; просмотров: 100 | Поможем написать вашу работу | Нарушение авторских прав |