Разное

С учетом регистра это как: с учетом регистра | это… Что такое с учетом регистра?

Сортировка записей с учетом регистра

Access для Microsoft 365 Access 2021 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Еще…Меньше

Access сортирует записи по возрастанию или убыванию без учета регистра. Однако, написав несколько строк кода Visual Basic для приложений (VBA), вы сможете сортировать текст по значениям символов ASCII. Сортировка по значениям ASCII различает буквы верхнего регистра и нижнего регистра, что обеспечивает сортировку с учетом регистра.

В следующей таблице показано, чем порядок сортировки по возрастанию в Access отличается от порядка сортировки с учетом регистра.

Порядок перед сортировкой

По возрастанию

С учетом регистра

c

a

A

D

A

B

a

B

C

d

b

D

B

c

a

C

C

b

A

D

c

b

d

d

Хотя результаты в столбце «По возрастанию» могут сначала показаться несколько неожиданными, это не так. В столбце «По возрастанию» перед «A» отображается «a», а перед «b» — «B». Причиной является то, что при оценке текстовых значений «A» = «a» и «B» = «b», независимо от регистра. Access учитывает исходный порядок значений. В столбце «Порядок перед сортировкой» буква «a» находится перед «А», а буква «B» — перед «b».

При сортировке с учетом регистра текстовые значения заменяются соответствующими значениями ASCII. Например, A = 65, a = 97, B = 66, b = 98 и т. д.

  1. Создайте модуль VBA и введите следующую строку в разделе описаний, если ее там нет:

    Option Explicit

  2. Введите следующую процедуру в модуль редактора Visual Basic:

    Function StrToHex (S As Variant) As Variant
    '
    ' Converts a string to a series of hexadecimal digits.
    ' For example, StrToHex(Chr(9) & "A~") returns 09417E.
    '
    Dim Temp As String, I As Integer
    If VarType(S) <> 8 Then
    StrToHex = S
    Else
    Temp = ""
    For I = 1 To Len(S)
    Temp = Temp & Format(Hex(Asc(Mid(S, I, 1))), "00")
    Next I
    StrToHex = Temp
    End If
    End Function

    Предшествующую пользовательскую функцию StrToHex можно вызвать из запроса. Когда вы передаете имя поля сортировки в эту функцию, она сортирует значения полей с учетом регистра.

  3. Теперь создайте запрос, из которого вызывается эта функция.

    На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.

  4. Выберите Добавить таблицы (Показать таблицу в Access 2013).

  5. Перетащите нужные поля в сетку.

  6. В первом пустом столбце строки Поле введите Expr1: StrToHex([SortField]).

    StrToHex — это пользовательская функция, созданная ранее. SortField — это имя поля, содержащего значения с учетом регистра.

  7. В ячейке Сортировка выберите вариант По возрастанию или По убыванию.

    Если выбрать сортировку по возрастанию, значение, начинающееся с прописных букв, будет отображаться перед значениями, начинающимися со строчных букв. При применении варианта «По убыванию» сортировка выполняется в обратном порядке.

  8. Переключитесь в режим таблицы.

    Access отображает записи, отсортированные с учетом регистра.

К началу страницы

Что означает регистр? — gadgetshelp,com

Все, что чувствительно к регистру, различает прописные и строчные буквы. Другими словами, это означает, что два слова, которые появляются или звучат одинаково, но используют разные регистры букв, не считаются равными.

Например, если поле пароля является чувствительно к регистру, то вы должны ввести каждое письмо случая , как вы делали при создании пароля. Любой инструмент, поддерживающий ввод текста, может поддерживать ввод с учетом регистра.

Lifewire / Алекс Дос Диас 

Где используется регистр чувствительности?

Примеры связанных с компьютером данных, которые часто (но не всегда) чувствительны к регистру, включают команды , имена пользователей, имена файлов , теги языка программирования, переменные и пароли.

Например, поскольку пароли Windows чувствительны к регистру, пароль HappyApple $ действителен только в том случае, если он введен именно таким образом. Вы не можете использовать HAPPYAPPLE $ или даже happyApple $ , где только одна буква не в том случае. Поскольку каждая буква может быть прописной или строчной, каждая версия пароля, которая использует любой регистр, на самом деле является совершенно другим паролем.

Почтовые пароли часто также чувствительны к регистру (хотя адреса электронной почты редко бывают ). Поэтому, если вы входите в систему, например, в свою учетную запись Google или Microsoft, вы должны обязательно ввести пароль точно так же, как вы это делали при его создании.

Конечно, это не единственные области, где текст можно различить по буквам. Некоторые программы, которые предлагают утилиту поиска, такие как текстовый редактор Notepad ++ и веб-браузер Firefox , имеют возможность выполнять поиск с учетом регистра, так что будут найдены только слова соответствующего регистра, введенные в поле поиска. Все это бесплатный инструмент поиска для вашего компьютера, который также поддерживает поиск с учетом регистра.

Когда вы создаете учетную запись пользователя в первый раз или входите в нее, вы можете найти заметку где-то около поля пароля, в которой явно сказано, что пароль чувствителен к регистру, и в этом случае

имеет значение, как вы вводите букву случаи для входа.

Еще одно место, где нужно следить за вводом с учетом регистра, — при выполнении булевых поисков Google . Вы должны использовать все заглавные буквы, чтобы заставить поисковую систему понимать слова как оператор поиска, а не просто как обычное слово.

Если команда, программа, веб-сайт и т. Д. Не различают прописные и строчные буквы, это можно назвать независимым от регистра или независимым от регистра , но, вероятно, даже не будет упоминать об этом, если это так.

URL-адреса веб-сайтов обычно не чувствительны к регистру. Это означает, что в большинстве случаев вы можете ввести URL-адрес в Chrome, Firefox и других веб-браузерах, используя сочетание прописных и строчных букв, и он все равно будет загружать страницу в обычном режиме.

Безопасность за паролями с учетом регистра

Пароль, который необходимо вводить с правильными буквенными регистрами, гораздо более безопасен, чем пароль, который не требуется, поэтому большинство учетных записей пользователей чувствительны к регистру.

Используя приведенный выше пример, вы можете видеть, что даже эти два неверных пароля предоставляют три общих пароля, которые кто-то должен будет угадать, чтобы получить доступ к учетной записи Windows. Кроме того, поскольку этот надежный пароль имеет специальный символ и несколько букв, каждая из которых может быть прописной или строчной, найти правильную комбинацию будет непросто или быстро.

Представьте себе что-то попроще, например, пароль HOME . Кто-то должен будет попробовать все комбинации этого пароля, чтобы получить слово со всеми заглавными буквами. Им придется попробовать дом, дом, дом, дом, дом, дом, дом и т. Д. — вы поймете идею. Однако если бы этот пароль не учитывал регистр , каждая из этих попыток работала бы, плюс простая атака по словарю довольно легко добралась бы до этого пароля после того, как слово home было использовано. — включен.

Советы и дополнительная информация

Поскольку большинство паролей чувствительны к регистру символов, вы использовали буквенный регистр в первую очередь, если при входе на веб-сайт вы указали неверный пароль. Однако, поскольку большинство паролей скрыты за звездочками, что делает невозможным определение того, использовали ли вы буквенный регистр неправильно, просто убедитесь, что Caps Lock не включен на клавиатуре.

Командная строка Windows нечувствительна к регистру. Это означает, что вы можете вводить такие команды, как dir как DIR, DiR, dIr и т. Д. — на самом деле нет никаких причин делать это, но если вы ввели его неправильно, вы не сделаете этого. надо беспокоиться о том, чтобы исправить это, чтобы команда работала.

То же самое относится и к путям к папкам из командной строки в Windows. Например, загрузка с CD такая же, как

загрузка с компакт-диска и загрузка CD-диска .

Linux команда, однако, является чувствителен к регистру.

Вы должны ввести их точно так, как они появляются, иначе вы получите ошибку. Ввод загрузок с компакт-диска, когда папка фактически называется «Загрузки», приведет к ошибке, такой как «Нет такого файла или каталога». Команды, введенные в неправильном регистре, вернут ошибку «команда не найдена».

sql server 2008 — Как выполнить поиск с учетом регистра с помощью LIKE?

Я пытаюсь найти записи, содержащие строку из 6 или более буквенно-цифровых символов в верхнем регистре. Некоторые примеры:

 ОЖИДАНИЕ СТОРОННЕГО КОДА27
 

Я использую следующий оператор:

 SELECT Details
ИЗ MyTable
ГДЕ Подробности LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%';
 

Это возвращает все записи, содержащие любое слово из 6 или более букв, независимо от регистра.

Я добавил оператор COLLATE :

 SELECT Details
ИЗ MyTable
ГДЕ Подробности COLLATE Latin1_General_CS_AS LIKE '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]% ';
 

Это ничего не меняет. Он по-прежнему возвращает записи со словом из 6 или более букв, независимо от регистра.

В качестве теста я попробовал:

 ВЫБЕРИТЕ Подробности
ИЗ MyTable
ГДЕ Подробности COLLATE Latin1_General_CS_AS LIKE '%pending%';
ВЫБЕРИТЕ Детали
ИЗ MyTable
ГДЕ Подробности COLLATE Latin1_General_CS_AS LIKE '%PENDING%';
 

Оба они работали, возвращая записи, содержащие «ожидание» и «ожидание» соответственно. Таким образом, проблема, похоже, связана с сопоставлением шаблонов клауса LIKE .

Что я могу сделать, чтобы выполнить этот поиск с учетом регистра?

  • sql-server-2008
  • сопоставление с образцом
  • sql-подобный
  • сопоставление

4

Попробуйте использовать COLLATE Latin1_General_BIN вместо РАЗБОР Latin1_General_CS_AS

1

Обновление из-за @GeraldSv : Использовать сопоставление Latin1_General_BIN

 ВЫБРАТЬ Подробности
ИЗ MyTable
ГДЕ Подробности
НРАВИТСЯ '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%'
COLLATE Latin1_General_BIN;
 

Вам необходимо поместить спецификатор сопоставления после строки, которая будет соответствовать, а не столбца:

 SELECT Details
ИЗ MyTable
ГДЕ Подробности
НРАВИТСЯ '%[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]%'
COLLATE Latin1_General_CS_AS;
 Обновление 

: хотя мой ответ выше верен, в Connect зарегистрирована ошибка: УЧЕТ К РЕГИСТРУ не работает при использовании диапазона, например COLLATE Latin1_General_CS_AS, который Microsoft пометил как «By Design».

Я проверил используя AdventureWorks2008R2 (без учета регистра, по умолчанию), в таблице Person.Person я изменил 3 фамилии, оканчивающиеся на «n», на «N», а затем выполнил следующие запросы:

 ВЫБЕРИТЕ СЧЕТ(*)
ОТ Человека.Человека
ГДЕ Фамилия НРАВИТСЯ '%N' COLLATE Latin1_General_CS_AS
 

Успех. Верните 3 строки, как и ожидалось.

 ВЫБЕРИТЕ СЧЕТ(*)
ОТ Человека.Человека
ГДЕ Фамилия НРАВИТСЯ '%[N]' COLLATE Latin1_General_CS_AS
 

Успех. Верните 3 строки, как и ожидалось.

 ВЫБЕРИТЕ СЧЕТ(*)
ОТ Человека.Человека
ГДЕ Фамилия НРАВИТСЯ '%[N-N]' COLLATE Latin1_General_CS_AS
 

Успех. Верните 3 строки, как и ожидалось.

 ВЫБЕРИТЕ СЧЕТ(*)
ОТ Человека.Человека
ГДЕ Фамилия НРАВИТСЯ '%[M-N]' COLLATE Latin1_General_CS_AS
 

Сбой. Возвращает 3334 строки (все фамилии оканчиваются на «n» и «N»)

Обновление: благодаря @GeraldSv это работает:

 SELECT COUNT(*)
ОТ Человека.Человека
ГДЕ Фамилия НРАВИТСЯ '%[M-N]' COLLATE Latin1_General_BIN
 

1

Я использую следующее:

 SELECT COUNT(*)
ОТ Человека. Человека
ГДЕ Фамилия COLLATE Latin1_General_CS_AS != upper(LastName) COLLATE Latin1_General_CS_AS
 

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью Google

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя адрес электронной почты и пароль

Опубликовать как гость

Электронная почта

Обязательно, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Выполнение запроса Like без учета регистра в базе данных SQL Server с учетом регистра

Задавать вопрос

спросил

Изменено 2 года, 1 месяц назад

Просмотрено 14 тысяч раз

Это мой сценарий.

SQL Server 2014 Standard edition, у меня есть база данных с сопоставлением SQL_Latin1_General_CP437_BIN2 , которое чувствительно к регистру.

Я хочу выполнить запрос LIKE , который должен возвращать выходные данные независимо от регистра.

Пример: если я выполняю запрос Like для извлечения записей с именем пользователя «Джон», он также должен возвращать строки независимо от регистра «ДЖОН», «Джон», «Джон», «Джон».

Я пытался использовать Lcase , Ucase , но я получаю ошибку

Сообщение 195, уровень 15, состояние 10, строка 4
‘LCASE’ не является распознаваемым именем встроенной функции.

Это мой пример запроса

 SELECT TOP 300 *
ОТ
    (ВЫБИРАТЬ
         № пользователя, имя пользователя, место, дата рождения
     ОТ пользовательской таблицы
     ГДЕ человек = 2
       И (Имя КАК LCASE('%john%'))
     СОЮЗ
     ВЫБИРАТЬ
         № пользователя, имя пользователя, место, дата рождения,
     ОТ usertable2
     ГДЕ человек = 2
       И (Имя LIKE LCASE('%john%') ИЛИ Место LIKE LCASE('%NY%')) ) a
СОРТИРОВАТЬ ПО
    № пользователя
 

Ребята, помогите мне с вашими ценными предложениями, я немного запутался в использовании БД на основе сортировки.

  • sql-server
  • sql-server-2014
  • sql-like
  • сопоставление
  • без учета регистра

2

Вы можете использовать функции ВЕРХНЯЯ или НИЖНЯЯ для преобразования значений в один и тот же регистр. Например:

 ВЫБЕРИТЕ *
ИЗ вашего стола
ГДЕ ВЕРХНИЙ(ВашаКолонка) = ВЕРХНИЙ('ЗНАЧЕНИЕ')
 

Кроме того, вы можете указать параметры сортировки вручную при сравнении:

 SELECT *
ИЗ вашего стола
ГДЕ YourColumn = 'ЗНАЧЕНИЕ' COLLATE SQL_Latin1_General_CP1_CI_AI
 

6

В дополнение к использованию lower() вам необходимо применить его к столбцу , а не к шаблону. Паттерн уже строчный.

 Выберите 300 лучших a.*
из (ВЫБРАТЬ № пользователя, имя пользователя, место, дату рождения
      ОТ пользовательской таблицы
      где personid = 2 и ниже (имя) LIKE '%john%'
      СОЮЗ
      ВЫБЕРИТЕ № пользователя, имя пользователя, место, дату рождения
      ОТ usertable2
      где personid = 2 и
            (ниже (имя), например, «%john%», или ниже (место), например, «%ny%»)
     ) а
заказ по номеру пользователя;
 

Обратите внимание, что UNION ALL предпочтительнее, чем UNION , если вы намеренно не хотите нести накладные расходы на удаление дубликатов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *