Sql upper: UPPER (Transact-SQL) — SQL Server
Содержание
Функция Oracle UPPER
Функция Oracle UPPER()
преобразует все буквы строки в верхний регистр.
Синтаксис
Ниже показан синтаксис функции Oracle UPPER()
:
Язык кода: SQL (язык структурированных запросов) (sql)
UPPER(string)
Аргументы
Функция UPPER()
принимает один аргумент:
1) string
9000 5
— это строка, преобразованная в верхний регистр.
Возвращаемое значение
Функция UPPER()
возвращает строку, в которой все буквы в верхнем регистре.
Примеры
Следующий оператор преобразует строку 'string function'
в верхний регистр:
Язык кода: SQL (язык структурированных запросов) (sql)
SELECT ПРОПИСН('строковые функции') ОТ двойной;
Вот результат:
Язык кода: SQL (язык структурированного запроса) (SQL)
'Строковые функции'
Давайте посмотрим на таблицу
в базе данных:
Следующие группы контактов для каждого алфавита.
Язык кода: SQL (язык структурированных запросов) (sql)
ВЫБЕРИТЕ ПРОПИСНЫЕ( SUBSTR( first_name, 1, 1 )) инициалы, СЧИТАТЬ( * ) ОТ контакты ГРУППА ПО ПРОПИСНАЯ( SUBSTR( первое_имя, 1, 1 )) СОРТИРОВАТЬ ПО инициалы
На следующем рисунке показан результат:
Вы можете использовать функцию UPPER()
для выполнения поиска значений в столбце без учета регистра. Чтобы продемонстрировать это, давайте изменим фамилию идентификатора контакта 38 с Hill
на HILL
:
Язык кода: SQL (язык структурированных запросов) (sql)
UPDATE. контакты НАБОР last_name = 'ХОЛМ' ГДЕ контакт_ид = 38;
Чтобы найти контакты с фамилией Hill
, HILL
или hill
, используйте функцию UPPER()
в предложении WHERE
следующим образом:
901 06
ВЫБОР
контакт_идентификатор,
имя,
фамилия,
электронная почта
ОТ
контакты
ГДЕ
ПРОПИСНАЯ(фамилия) = 'ХОЛМ';
Язык кода: SQL (язык структурированных запросов) (sql)
Вот результат:
В этом руководстве вы узнали, как использовать Oracle UPPER()
Функция для преобразования всех букв строки в верхний регистр.
Было ли это руководство полезным?
Примеры запроса SQL SELECT без учета регистра
Часто задаваемые вопросы по запросу SQL SELECT
: Как выполнять запросы SQL SELECT
, игнорируя регистр (т. е. запросы без учета регистра, игнорирующие прописные или строчные буквы строки)?
Фон
Когда я впервые начал писать SQL-запросы, я использовал Postgresql и использовал некоторые из их пользовательских возможностей регулярных выражений для выполнения запросов без учета регистра. В то время это казалось хорошей идеей, но когда я попытался перенести свое приложение в базу данных MySQL, часть моего приложения перестала работать. После некоторой отладки я вспомнил, что использовал специфичные для Postgreql возможности запросов, поэтому мне пришлось переписать эту часть кода для работы с MySQL.
Чтобы избавить вас от этой печали, в следующих примерах показано, как писать нечувствительные к регистру запросы SQL SELECT с использованием стандартного синтаксиса SQL. Показанные запросы должны работать с большинством, если не со всеми, базами данных, совместимыми с SQL 92.
Очень важное предостережение
Обратите внимание, что есть одна ОЧЕНЬ ВАЖНАЯ вещь, которую следует сказать о показанном подходе:
Эти запросы заставляют вашу базу данных выполнять сканирование таблицы . Это означает, что если у вас есть индекс для столбца, который вы ищете, этот индекс не будет использоваться. Таким образом, если в вашей таблице миллиард записей, этот подход заставит базу данных просматривать все миллиарды записей. Очевидно, что это очень важное предостережение, о котором вы должны знать.
Я не публикую комментарии от людей, которые используют уничижительный язык, но, как написал один человек в комментариях (между оскорблениями), «использование функции для преобразования всего столбца данных требует сканирования таблицы и его следует избегать в
ГДЕ пункт
».
Нечувствительный к регистру SQL SELECT: используйте функции верхнего или нижнего регистра
Стандартный способ SQL для выполнения запросов без учета регистра — использование функций SQL верхнего
или нижнего
, например:
выберите * из пользователей, где upper(first_name) = 'FRED';
или это:
выберите * из пользователей, где lower(first_name) = 'fred';
Как видите, шаблон состоит в том, чтобы сделать поле, которое вы ищете, в верхнем или нижнем регистре, а затем сделать строку поиска также в верхнем или нижнем регистре, чтобы соответствовать функции SQL, которую вы использовали.