FROM titles
WHERE pubdate IN (#2000-01-01#, #2001-01-01#, #2002-01-01#)
Примечание. Для обозначения даты используется перед литералом ключевое слово DATE: DATE ‘2001-01-01’, которое в Microsoft SQL Server следует опускать.
В выборку могут входить вычислимые (производные столбцы).
SELECT title_id, price,
0.10 AS “Скидка”,
price * (1-0.10) AS “Новая цена”
Оператор || позволяет сцеплять (конкатерировать) строки.
SELECT au_fname || ‘ ‘ || au_lname AS “Имя автора”
FROM authors
ORDER BY au_lname ASC, au_fname ASC
Функция CAST преобразует число в символ.
SELECT CAST(sales AS CHAR(7)) || ‘продано наименований‘ || title_id AS “Продажи биографий”
FROM titles
WHERE type = ‘biography’
AND sales IS NOT NULL
ORDER BY sales DESC
Примечание. В Access применяются операторы + и функция FORMAT (Запрос Sales-format):
SELECT Format(sales)+' экземпляров издания '+title_id AS 'Продажи биографий'
FROM title
WHERE type='biography' AND sales Is Not Null
ORDER BY title.sales DESC;
Функция Mid (строка, начало [, длина]) выбирает из строки цепочку символов. (Запрос Author-Mid)
SELECT Mid(au_fname,1,1)+'. '+au_lname AS 'Имя автора', state
FROM authors
WHERE state In ("NY","CO");
Применение функций LOWER, UPPER
SELECT LOWER(au_fname) AS ‘Lower’,
UPPER(au_lname) AS ‘Upper’
FROM authors
Для удаления головных, хвостовых, головных плюс хвостовых пробелов применяются функции LTRIM, RTRIM, TRIM. (Запрос Author-sort)
SELECT IIf(TRIM(au_fname) IS Null,' ',TRIM(au_fname))+' '+au_lname AS 'Имя автора'
FROM authors
ORDER BY au_lname, au_fname;
Стандарт SQL определяет строковые функции:
CHARACTER_LENGTH() – количество символов (не байт, т.к. бывает кодировка Unicode),
BIT_LENGTH() – число бит в выражении,
OCTET_LENGTH() – число байт.
В Access (Microsoft SQL Server) используется функция LEN. (Запрос Length_Title)
SELECT title_name,
LEN(title_name) AS ‘Len’
FROM title
WHERE LEN(title_name) < 30
ORDER BY LEN(title_name) ASC;
В SQL для поиска подстроки внутри заданной строки применяется функции POSITION (подстрока IN строка).
Коммерческие СУБД предоставляют другие функции:
- Access – InStr(начальная_позиция, строка, подстрока)
- Microsoft SQL Server – CHARINDEX,
- Oracle – INSTR,
-MySQL – LOCATE.
(Запрос Position_Word)
SELECT title_name,
InStr(title_name,’Not’) AS ‘Posit’
FROM title
WHERE ((InStr([title_name],"Not")) Between 1 And 10)
ORDER BY InStr(title_name,’Not’) DESC;
Примечание. В SQL функция CAST применяется для преобразования выражения одного типа в другой (в большинстве случаев СУБД выполняет преобразование типов автоматически). В Access используется семейство аналогичных функций: CStr, CInt, CDec, преобразующих выражение к строке, к числу целому либо с десятичной точкой. В строковых выражениях также применяются функции Space (строка из заданного количества пробелов) и Left (указанное количество символов от начала строки).
SQL предлагает ряд функций для работы с датами. Например, EXTRACT(поле FROM дата либо интервал)
Аргумент поле может принимать следующие значения: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, TIMEZONE_HORE, TIMEZONE_MINUTE. Результат имеет тип INTEGER, за исключением аргумента MINUTE, тогда его тип NUMERIC.
К датам могут применяться операции + , - :
дата – дата, результат – интервал, дата + дата, – дата, дата – интервал, – дата, интервал + дата, – дата, интервал + интервал, – интервал, интервал – интервал, – интервал, интервал + число, – интервал, интервал / число, – интервал, число * интервал, – интервал.
В Access и Microsoft SQL Server используется функция
DatePart(интервал, дата [первый день недели [, первая неделя года] ].
Интервал может принимать значения: yyyy, q (квартал), m, y (день), d, ww (неделя), h (час), n (минута), s.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.