MS Access — Учебник SQL — Schoolsw3.com
schoolsw3.com
САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ
❮ SQL Справочник Ключевых слов
❮ Назад Далее ❯
MS Access имеет множество встроенных функций.
Этот справочник содержит функции строк, чисел и дат в MS Access.
MS Access
Функция | Описание |
---|---|
Asc | Возвращает значение ASCII для конкретного символа |
Chr | Возвращает символ по указанному номеру кода ASCII |
Concat with & | Добавляет две или более строк вместе |
CurDir | Возвращает полный путь для указанного диска |
Format | Форматирует значение с указанным форматом |
InStr | Возвращает позицию первого вхождения строки в другую |
InstrRev | Возвращает позицию первого вхождения строки в другую, начиная с конца строки |
LCase | Преобразует строку в нижний регистр |
Left | Извлекает ряд символов из строки (начиная слева) |
Len | Возвращает длину строки |
LTrim | Удаляет начальные пробелы из строки |
Mid | Извлекает некоторые символы из строки (начиная с любой позиции) |
Replace | Заменяет подстроку внутри строки другой подстрокой, заданное количество раз |
Right | Извлекает ряд символов из строки (начиная справа) |
RTrim | Удаляет конечные пробелы из строки |
Space | Возвращает строку с указанным количеством пробелов |
Split | Разбивает строку на массив подстрок |
Str | Возвращает число в виде строки |
StrComp | Сравнивает две строки |
StrConv | Возвращает преобразованную строку |
StrReverse | Переворачивает строку и возвращает результат |
Trim | Удаляет из строки как начальные, так и конечные пробелы |
UCase | Преобразует строку в верхний регистр |
MS Access Числовые функции
Функция | Описание |
---|---|
Abs | Возвращает абсолютное значение числа |
Atn | Возвращает арктангенс числа |
Avg | Возвращает среднее значение выражения |
Cos | Возвращает косинус угла |
Count | Возвращает количество записей, возвращаемых запросом select |
Exp | Возвращает значение e, возведенное в степень заданного числа |
Fix | Возвращает целочисленную часть числа |
Format | Форматирует числовое значение с указанным форматом |
Int | Возвращает целочисленную часть числа |
Max | Возвращает максимальное значение в наборе значений |
Min | Возвращает минимальное значение в наборе значений |
Randomize | Инициализирует генератор случайных чисел (используемый Rnd()) с помощью затравки |
Rnd | Возвращает случайное число |
Round | Округляет число до заданного количества знаков после запятой |
Sgn | Возвращает знак числа |
Sqr | Возвращает квадратный корень из числа |
Sum | Вычисляет сумму набора значений |
Val | Считывает строку и возвращает числа, найденные в этой строке |
MS Access Функции дат
Функция | Описание |
---|---|
Date | Возвращает текущую системную дату |
DateAdd | Добавляет интервал времени/даты к дате, а затем возвращает дату |
DateDiff | Возвращает разницу между двумя датами |
DatePart | Возвращает указанную часть даты (в виде целого числа) |
DateSerial | Возвращает дату из указанных частей (значения года, месяца и дня) |
DateValue | Возвращает дату на основе строки |
Day | Возвращает день месяца для заданной даты |
Format | Форматирует значение даты в указанном формате |
Hour | Возвращает часовую часть time/datetime |
Minute | Возвращает минутную часть time/datetime |
Month | Возвращает месячную часть заданной даты |
MonthName | Возвращает название месяца на основе числа |
Now | Возвращает текущую дату и время на основе системной даты и времени компьютера |
Second | Возвращает секундную часть time/datetime |
Time | Возвращает текущее системное время |
TimeSerial | Возвращает время из указанных частей (час, минута и второе значение) |
TimeValue | Возвращает время, основанное на строке |
Weekday | Возвращает номер дня недели для заданной даты |
WeekdayName | Возвращает название дня недели на основе числа |
Year | Возвращает годовую часть заданной даты |
MS Access Некоторые другие функции
Функция | Описание |
---|---|
CurrentUser | Возвращает имя текущего пользователя базы данных |
Environ | Возвращает строку, содержащую значение переменной среды операционной системы |
IsDate | Проверяет, можно ли преобразовать выражение в дату |
IsNull | Проверяет, содержит ли выражение Null (нет данных) |
IsNumeric | Проверяет, является ли выражение допустимым числом |
❮ Назад Далее ❯
❮ SQL Справочник Ключевых слов
ВЫБОР ЦВЕТА
ТОП Учебники
HTML УчебникCSS Учебник
JavaScript Учебник
КАК Учебник
SQL Учебник
Python Учебник
W3. CSS Учебник
Bootstrap Учебник
PHP Учебник
Java Учебник
C++ Учебник
jQuery Учебник
ТОП Справочники
HTML СправочникCSS Справочник
JavaScript Справочник
SQL Справочник
Python Справочник
W3.CSS Справочник
Bootstrap Справочник
PHP Справочник
HTML Цвета
Java Справочник
Angular Справочник
jQuery Справочник
ТОП Примеры
HTML ПримерыCSS Примеры
JavaScript Примеры
КАК Примеры
SQL Примеры
Python Примеры
W3.CSS Примеры
Bootstrap Примеры
PHP Примеры
Java Примеры
XML Примеры
jQuery Примеры
Форум | О SchoolsW3
SchoolsW3 оптимизирован для бесплатного обучения, проверки и подготовки знаний. Примеры в редакторе упрощают и улучшают чтение и базовое понимание. Учебники, ссылки, примеры постоянно пересматриваются, чтобы избежать ошибок, но не возможно гарантировать полную правильность всего содержания.
Авторское право 1999- Все права защищены.
SchoolsW3 работает на площадке от SW3.CSS.
1. Строковые функции
Строковые функции принимают в качестве параметра строку и возвращают после ее обработки строку или null.
Подстрока начинается с символа, порядковый номер которого указан в параметре начало и имеет длину, указанную в параметре длина.
Нумерация символов строки ведется слева направо, начиная с 1. Квадратные скобки здесь указывают лишь на то, что заключенное в них выражение не является обязательным. Если выражение for длина не используется, то возвращается подстрока от начало и до конца исходной строки.
Значения параметров начало и длина должны выбираться так, чтобы искомая подстрока действительно находилась внутри исходной строки. В противном случае функция substring вернет null.
Например:
SUBSTRING (‘Дорогая Маша!’ FROM 9 TOR 4) — возвращает ‘Маша’;
SUBSTRING (‘Дорогая Маша! ‘ FROM 9) — возвращает ‘Маша! ‘;
SUBSTRING (‘Дорогая Маша! ‘ FROM 15) — возвращает NULL
Использовать эту функцию в SQL-выражении можно, например, так:
SELECT * FROM Клиенты
WHERE SUBSTRING (Регион FROM 1 FOR 5) = ‘Север‘;
upper (строка) — переводит все символы указанной в параметре строки в верхний регистр.
lower (строка) — переводит все символы указанной в параметре строки в нижний регистр.
TRIM(LEADING | TRAILING | BOTH [‘символ‘] FROM строка) —
удаляет ведущие (leading), заключительные (trailing) или те и другие (both) символы из строки. По умолчанию удаляемым символом является пробел (‘ ‘), поэтому его можно не указывать. Чаще всего эта функция используется именно для удаления пробелов.
Например:
TRIM (LEADING ‘ ‘ FROM ‘ город Санкт-Петербург ‘) —
возвращает ‘город Санкт-Петербург ‘;
TRIM (TRALING ‘ ‘ FROM ‘ город Санкт-Петербург ‘) —
возвращает ‘ город Санкт-Петербург’;
TRIM(BOTH ‘ ‘ FROM ‘ город Санкт-Петербург ‘) —
возвращает ‘город Санкт-Петербург’;
TRIM (BOTH FROM ‘ город Санкт-Петербург ‘) —
возвращает ‘город Санкт-Петербург’;
TRIM(BOTH ‘г’ FROM ‘город Санкт-Петербург’) —
возвращает ‘ород Санкт-Петербур’.
Среди этих функций наиболее часто используемые — это SUBSTRING() и TRIM() .
Числовые функции
Числовые функции в качестве параметра могут принимать данные не только числового типа, но возвращают всегда число или null (неопределенное значение).
Если целевая строка имеет нулевую длину (например, пустая строка »), то функция возвращает 1. Если хотя бы один из параметров имеет значение null, to возвращается null. Нумерация символов строки ведется слева направо, начиная с 1.
Например:
position (‘е’ in ‘Привет всем’) — возвращает 5;
POSITION С всем’ IN ‘Привет всем’) — возвращает 8;
position (‘ ‘ in ‘привет всем’) — возвращает 1;
POSITION (‘Привет ! ‘ IN ‘Привет всем’) — возвращает 0.
В таблице клиенты столбец Адрес содержит, кроме названия города, почтовый индекс, название улицы и другие данные. Возможно, вам потребуется выбрать записи о клиентах, проживающих в определенном городе.
Так, если требуется выбрать записи, относящиеся к клиентам, проживающим в Санкт-Петербурге, то можно воспользоваться следующим выражением SQL-запроса:
SELECT * FROM Клиенты
WHERE POSITION(‘Санкт—Петербург‘ IN Адрес) > 0;
Заметим, что этот простой запрос на выборку данных можно сформулировать иначе:
SELECT * FROM Клиенты
WHERE Адрес LIKE ‘%Петербург%’;
Например:
EXTRACT(MONTH FROM DATE ‘2005-10-25’) — возвращает 10.
Например:
character_length с привет всем’) — возвращает 11.
octet_length (строка) — возвращает количество октетов (байтов) в строке. Каждый символ латиницы или кириллицы представляется одним байтом, а символ китайского алфавита — двумя байтами.
cardinality (параметр) — принимает в качестве параметра коллекцию элементов и возвращает количество элементов в коллекции (кардинальное число). Коллекция может быть, например, массивом или мультимножеством, содержащим элементы различных типов.
abs (число) — возвращает абсолютное значение числа.
Например:
abs(-123) — возвращает 123;
abs(2 — 5) — возвращает 3.
Например:
mod (5, 3) — возвращает 2;
mod(2, 3) — возвращает 0.
Например:
floor(5. 123) — возвращает 5.0.’
Например:
ceil(5.123) — возвращает 6,0.
WIDTH_BUCKET(число1, число2, число3, число4) — возвращает целое число в диапазоне между 0 и число4 + 1.
Параметры число2 и число3 задают числовой отрезок, разделенный на равновеликие интервалы, количество которых задается параметром числом. Функция определяет номер интервала, в который попадает значение число1. Если число2 находится за пределами заданного диапазона, то функция возвращает 0 или число4 +1.
Например:
width_bucket(3.14, о, 9, 5) — возвращает 2.
Функции даты-времени
В языке SQL имеются три функции, которые возвращают текущие дату и время.
current_date — возвращает текущую дату (тип date). Например, 2005-06-18.
currentjtime (число) — возвращает текущее время (тип time). Целочисленный параметр указывает точность представления секунд. Например, при значении 2 секунды будут представлены с точностью до сотых (две цифры в дробной части): 12:39:45. 27.
current_timestamp (число) — возвращает дату и время (тип TIMESTAMP).
Например, 2005-06-18 12:39:45.27.
Целочисленный параметр указывает точность представления секунд.
Обратите внимание, что дата и время, возвращаемые этими функциями, имеют не символьный тип. Если требуется представить их в виде символьных строк, то для этого следует использовать функцию преобразования типа cast ().
Функции даты-времени обычно применяются в запросах на вставку, обновление и удаление данных.
Например, при записи сведений о продажах в специально предусмотренный для этого столбец вносятся текущие дата и время. После подведения итогов за месяц или квартал, данные о продажах за отчетный период можно удалить.
Вычисляемые выражения
Вычисляемые выражения строятся из констант (числовых, строковых, логических), функций имен полей и данных других типов путем соединения их арифметическими, строковыми, логическими и другими операторами.
В свою очередь, выражения могут быть объединены посредством операторов в более сложные (составные) выражения. Для управления порядком вычисления выражений используются круглые скобки.
Арифметические операторы приведены далее:
+ — сложение;
— — вычитание;
* — умножение;
/ — деление.
Строковый оператор только один — оператор конкатенации или склейки строк (и). В некоторых реализациях SQL (например, в Microsoft Access) вместо (и) используется символ (+). Оператор конкатенации приписывает вторую строку к концу первой. Например, выражение:
‘Саша’ | | ‘любит’ | | ‘ Машу’
вернет в качестве результата строку ‘ Саша любит Машу’.
При составлении выражений необходимо следить, чтобы операнды операторов имели допустимые типы.
Например, выражение:
123 + ‘Саша’
недопустимо, поскольку арифметический оператор сложения применяется к строковому операнду.
Вычисляемые выражения могут находиться после оператора select, а также в выражениях условий операторов where и having.
Рассмотрим несколько примеров.
Пусть таблица Продажи содержит столбцы Тип_товара, Количество и Цена, а нам требуется знать выручку для каждого типа товара. Для этого достаточно в список столбцов после оператора SELECT включить выражение Количество*Цена;
SELECT Тип_товара, Количество, Цена, Количество*Цена AS Итого FROM Продажи;
Здесь используется ключевое слово as (как) для задания псевдонима столбца с вычисляемыми данными.
Если требуется узнать общую выручку от продажи всех товаров, то достаточно применить следующий запрос:
SELECT SUМ(Количество*Цена) FROM Продажи;
Следующий запрос содержит вычисляемые выражения и в списке столбцов, и в условии оператора where. Он выбирает из таблицы Продажи те товары, выручка от продажи которых больше 1000:
SELECT Тип_товара, Количество*Цена AS Итого
FROM Продажи
WHERE Количество*Цена > 1000;
Предположим, что требуется получить таблицу, в которой два столбца:
Товар, содержащий тип товара и цену;
Итого, содержащий выручку.
Поскольку предполагается, что в исходной таблице Продажи столбец Тип_товара является символьным (тип char), а столбец цена — числовой, то при объединении (склейке) данных из этих столбцов необходимо выполнить приведение числового типа
к символьному с помощью функции cast ().
SELECT Тип_товара | | ‘ (Цепа: ‘ | | CAST(Цена AS CHAR(5)) | | ‘)’ AS Товар, Количество*Цена AS Итого
FROM Продажи;
В Microsoft Access аналогичный запрос будет иметь следующий вид:
SELECT Тип_товара + ‘ (Цена: ‘ + СЭ1:г(Цена) + ‘)’ AS Товар, Количество*Цена AS Итого FROM Продажи;
Условные выражения с оператором CASE
В обычных языках программирования имеются операторы условного перехода, которые позволяют управлять вычислительным процессом в зависимости от того, выполняется или нет некоторое условие.
В языке SQL таким оператором является case (случай, обстоятельство, экземпляр). В SQL:2003 этот оператор возвращает значение и, следовательно, может использоваться в выражениях. Он имеет две основные формы, которые мы рассмотрим в данном разделе.
Оператор CASE со значениями
Оператор case со значениями имеет следующий синтаксис:
CASE проверяемое_значение
WHEN значение1 THEN результат1
WHEN значение2 THEN результат2
WHEN значение N THEN результаты N
ELSE результатХ
END
В случае, когда проверяемое_значение равно значение1, оператор case возвращает значение результат1, указанное после ключевого слова then (to).
В противном случае проверяемое_ значение сравнивается с значение2, и если они равны, то возвращается значение результат2.
В противном случае проверяемое_ значение сравнивается со следующим значением, указанным после ключевого слова when (когда) и т. д.
Если проверяе-мое_значение не равно ни одному из таких значений, то возвращается значение результатХ, указанное после ключевого слова else (иначе).
Ключевое слово else не является обязательным. Если оно отсутствует и ни одно из значений, подлежащих сравнению, не равно проверяемому значению, то оператор case возвращает null.
Допустим, на основе таблицы Клиенты требуется получить таблицу, в которой названия регионов заменены их кодовыми номерами. Если в исходной таблице различных регионов не слишком много, то для решения данной задачи удобно воспользоваться запросом с оператором case:
SELECT Имя, Адрес,
CASE Регион
WHEN ‘Москва’ THEN ’77’
WHEN ‘Тверская область’ THEN ’69’
ELSE Регион
END
AS Код региона
FROM Клиенты;
Оператор CASE с условиями поиска
Вторая форма оператора case предполагает его использование при поиске в таблице тех записей, которые удовлетворяют определенному условию:
CASE
WHEN‘ условие1 THEN результат1
WHEN условие2 THEN результат2
WHEN условие N THEN результат N
ELSE результатХ
END
Оператор case проверяет, истинно ли условие1 для первой записи в наборе, определенном оператором where, или во всей таблице, если where отсутствует. Если да, то case возвращает значение результат1.
В противном случае для данной записи проверяется условие2. Если оно истинно, то возвращается значение результат2 и т. д.
Если ни одно из условий не выполняется, то возвращается значение результатХ, указанное после ключевого слова else.
Ключевое слово else не является обязательным. Если оно отсутствует и ни одно из условий не выполняется, оператор case возвращает null. После того как оператор, содержащий case, выполнится для первой записи, происходит переход к следующей записи. Так продолжается до тех пор, пока не будет обработан весь набор записей.
Предположим, в таблице Книги (Название, Цена) столбец Цена
имеет значение null, если соответствующей книги нет в наличии.
Следующий запрос возвращает таблицу, в которой вместо null отображается текст «нет в наличии»:
SELECT Название,
CASE
WHEN Цена IS NULL THEN ‘Нет в наличии‘
ELSE CAST(Цена AS CHAR(8))
END
AS Цена
FROM Книги;
Все значения одного и того же столбца должны иметь одинаковые типы. Поэтому в данном запросе используется функция преобразования типов cast для приведения числовых значений столбца цена к символьному типу.
Обратите внимание, что вместо первой формы оператора case всегда можно использовать вторую:
CASE
WHEN проверяемое_значение = значение1 THEN результат1 WHEN проверяемое_значение = значение2 THENрезультат2
WHEN проверяемое_значение = значениеN THEN результатN ELSE результатХ
END
Функции NULLIF и COALESCE
В ряде случаев, особенно в запросах на обновление данных (оператор update), удобно использовать вместо громоздкого оператора case более компактные функции nullif() (null, если) и coalesce() (объединять).
Функция NULLIF (значение1, значение.2) возвращает NULL, если значение первого параметра соответствует значению второго параметра, в случае несоответствия возвращается значение первого параметра без изменений.
То есть если равенство значение 1 = значение2 выполняется, то функция возвращает null, иначе — значение значение1.
Данная функция эквивалентна оператору case в следующих двух формах:
□ CASE значение1
WHEN значение2 THEN NULL
ELSE значение1
END
□ CASE
WHEN значение1 = значение2 THEN NULL
ELSE значение1
END
Функция COALESCE (значение1, значение2, . .. , значениеN)
принимает список значений, которые могут быть как определенными, так и неопределенными (null). Функция возвращает первое определенное значение из списка или null, если все значения не определены.
Данная функция эквивалентна следующему оператору case:
CASE
WHEN значение1 IS NOT NULL THEN значение1
WHEN значение2 IS NOT NULL THEN значение2
WHEN значениеN IS NOT NULL THEN значениеN
ELSE NULL
END
Предположим, что в таблице Книги (название, цена) столбец Цена имеет значение null, если соответствующей книги нет в наличии. Следующий запрос возвращает таблицу, в которой вместо NULL отображается текст «Нет в’ наличии«:
SELECT Название, COALESCE(CAST(Цена AS CHAR(8)),
‘Нет в наличии’) AS Цена
FROM Книги;
Сложные запросы
В SQL сложные вопросы (запросы) являются комбинацией простых SQL-запросов. Каждый простой запрос в качестве ответа возвращает набор записей (таблицу), а комбинация простых запросов возвращает результат тех или иных операций над ответами на простые запросы. Чтобы понять запрос, лучше всего разобраться в том, что является ответом на него, или понять, каким образом получается ответ.
В SQL сложные запросы получаются из других запросов следующими способами:
вложением SQL-выражения запроса в SQL-выражение другого запроса. Первый из них называют подзапросом, а второй — внешним или основным запросом;
применением к SQL-запросам операторов объединения и соединения наборов записей, возвращаемых запросами. Эти операторы называют теоретико-множественными или реляционными.
Строковые функции и способы их использования
С помощью строковых функций в Access можно создавать выражения, которые различными способами манипулируют текстом. Например, может потребоваться отобразить в форме только часть серийного номера. Или вам может понадобиться соединить (объединить) несколько строк вместе, например, фамилию и имя. Если вы еще не разбираетесь в выражениях, см. раздел Создание выражения.
Вот список некоторых из наиболее распространенных строковых операций в Access и функций, которые можно использовать для их выполнения:
К… | Используйте… | Например… | Результаты |
Возврат символов с начала строки | Левая функция | = Слева ([Серийный номер], 2) | Если [SerialNumber] — «CD234», результатом будет «CD». |
Возврат символов с конца строки | Правильная функция | =Правильно([СерийныйНомер],3) | Если [SerialNumber] — «CD234», результат — «234». |
Найти позицию символа в строке | Функция InStr | =InStr(1;[Имя],»i») | Если [Имя] «Колин», результат равен 4. |
Возвращает символы из середины строки | Средняя функция | = Середина([СерийныйНомер],2,2) | Если [Серийный номер] — «CD234», результат — «D2». |
Обрезать начальные или конечные пробелы в строке | Функции LTrim, RTrim и Trim | =Обрезать([Имя]) | Если [Имя] — «Колин», результатом будет «Колин». |
Соединить две строки вместе | Оператор со знаком плюс (+)* | = [Имя] + [Фамилия] | Если [FirstName] — «Colin», а [LastName] — Wilcox, результатом будет «ColinWilcox» |
Соединить две строки вместе с пробелом между ними | Оператор со знаком плюс (+)* | = [Имя] + » » + [Фамилия] | Если [FirstName] — «Colin», а [LastName] — Wilcox, результатом будет «Colin Wilcox» |
Изменить регистр строки на верхний или нижний регистр | Функция UCase или функция LCase | =UCase([Имя]) | Если [Имя] — «Колин», результатом будет «КОЛИН». |
Определить длину строки | Функция Len | =Лен([Имя]) | Если [Имя] — «Колин», результат — 5. |
* Итак, это не функция, это оператор. Тем не менее, это самый быстрый способ соединить строки вместе. В настольной базе данных вы также можете использовать оператор амперсанда (&) для конкатенации. В приложении Access необходимо использовать знак плюс (+).
В Access есть гораздо больше текстовых функций. Хороший способ узнать о них больше — открыть построитель выражений и просмотреть списки функций. Построитель выражений доступен почти везде, где вы хотите построить выражение — обычно там немного 9Кнопка 0195 Build , которая выглядит так:
Чтобы продемонстрировать построитель выражений, давайте откроем его из свойства Control Source в форме или представлении. Используйте одну из приведенных ниже процедур в зависимости от того, используете ли вы настольную базу данных или веб-приложение Access.
Отображение построителя выражений в базе данных рабочего стола
Откройте настольную базу данных (.accdb).
Нажмите F11, чтобы открыть панель навигации, если она еще не открыта.
Если у вас уже есть доступная форма, щелкните ее правой кнопкой мыши в области навигации и выберите Представление макета . Если у вас нет формы для работы, нажмите Создать > Форма .
Щелкните правой кнопкой мыши текстовое поле в форме и выберите Свойства .
На странице свойств щелкните All > Control Source и нажмите кнопку Build справа от поля свойств Control Source .
В разделе Элементы выражения разверните узел Функции и щелкните Встроенные функции .
В разделе Категории выражений щелкните Текст .
org/ListItem»>
В разделе Значения выражений выберите различные функции и прочитайте краткие описания в нижней части построителя выражений.
Примечание. Не все эти функции доступны во всех контекстах; Access автоматически фильтрует список в зависимости от того, какие из них работают в каждом контексте.
Отображение построителя выражений в веб-приложении Access
Откройте веб-приложение в Access. Если вы просматриваете в браузере, нажмите Настройки > Настроить в Access .
Щелкните таблицу в левом столбце, затем справа от списка таблиц щелкните имя представления.
Щелкните Изменить , щелкните текстовое поле и нажмите кнопку Данные , которая появляется рядом с текстовым полем.
Нажмите кнопку Build справа от раскрывающегося списка Control Source .
В Expression Elements разверните Functions и щелкните Встроенные функции .
В разделе Категории выражений щелкните Текст .
org/ListItem»>
В разделе Значения выражений выберите различные функции и прочитайте краткие описания в нижней части построителя выражений.
Сочетание текстовых функций для большей гибкости
Некоторые строковые функции имеют числовые аргументы, которые в некоторых случаях необходимо вычислять при каждом вызове функции. Например, функция Left принимает строку и число, например =Left(SerialNumber, 2) . Это замечательно, если вы знаете, что вам всегда нужны два левых символа, но что, если количество необходимых символов варьируется от элемента к элементу? Вместо того, чтобы просто «жестко запрограммировать» количество символов, вы можете ввести другую функцию, которая его вычисляет.
Вот пример серийных номеров, каждый из которых содержит дефис где-то в строке. Однако положение дефиса меняется:
Серийный номер |
3928-29993 |
23-9923 |
333-53234 |
3399940-444 |
Если вы хотите отображать только числа слева от дефиса, вам нужно каждый раз выполнять вычисления, чтобы узнать, где находится дефис. Один из вариантов — сделать что-то вроде этого:
=Слева([СерийныйНомер],InStr(1,[СерийныйНомер],»-«)-1)
Вместо ввода числа в качестве второго аргумента функции Left мы подключили функцию InStr, которая возвращает положение дефиса в серийном номере. Вычтите 1 из этого значения, и вы получите правильное количество символов, которое возвращает функция Left. Сначала это кажется немного сложным, но, немного поэкспериментировав, вы сможете комбинировать два или более выражений, чтобы получить желаемый результат.
Дополнительные сведения об использовании строковых функций см. в разделе Использование строковых функций в запросах Access SQL.
Строковая функция— служба поддержки Майкрософт
Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Дополнительно…Меньше
Возвращает вариант ( String ), содержащий повторяющуюся строку символов указанной длины.
Синтаксис
Строка( номер, символ )
Синтаксис функции String имеет следующие аргументы:
Аргумент | Описание |
номер | Обязательно. Длинный. Длина возвращаемой строки. Если номер содержит Null, возвращается Null . |
символ | Обязательно. Вариант. код символа, указывающий символ или строковое выражение, первый символ которого используется для построения возвращаемой строки. Если символ содержит Null, Null возвращается. |
Замечания
Если вы укажете число для символ больше 255, Строка преобразует число в допустимый код символа, используя формулу:
символ Мод. 256
Пример запроса
Выражение | Полученные результаты |
ВЫБЕРИТЕ ProductSales. |