Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Порівняння рядків



Два рядки вважаються рівними, якщо вони складаються з однакових символів, які слідують в одному порядку. Рядок з кількох символів може зберігатись у різних типах даних (як-от CHAR і VARCHAR), але однакові по змісту рядки будуть рівні між собою.

Операторами порівняння >, <, >=, <= рядки порівнюються в лексикографічному (алфавітному) порядку. Алгоритм порівняння рядків та зрозумілий:

Якщо ”менше” , то

Умова < виконується також якщо n<m та = , тобто перший рядок є префіксом другого.

Наприклад,

‘fodder’<’foo’

‘bar’<’bargain’

‘aaa’<’AAA’??? У Jet SQL певного порядку не спостерігається.

Asc("A")=97, Asc("a")=65

Asc("F")=70, Asc("f")=102

На сервері Ms SQL Server при сортуванні порядок українського алфавіту підтримується вірно. У MySQL, наприклад, українські букви і, є йдуть до а.

Порівняння рядків зі зразком

Вираз порівняння виглядає так:

s LIKE p,

Де s – рядок, що тестується, а p – зразок, тобто рядок, який може містити необов’язкові символи-шаблони:

Таблиця 5.12. Символи-шаблони в SQL

Символи шаблону ANSI* Символи шаблону Jet SQL Символи шаблону Transact SQL Символи в рядку, що тестується
% % та * % Нульова або більша кількість будь-яких символів
_ _ та? _ Один довільний символ
  #   Будь-яка одиночна цифра (0-9)
  [список_символів] [список_символів] Одиночний символ, який входить у список
  [!список_символів] [^список_символів] Одиночний символ, який не входить у список
  [символ1-символ2] [символ1-символ2] Одиночний символ, який належить до вказаного діапазону**

* Символи шаблону ANSI доступні для використання лише при використанні ядра Microsoft® Jet версии 15.X і програми Microsoft OLE DB Provider для Jet. В іншому разі вони сприймаються як звичайні символи.

**Наприклад: [А-Я] – одна з заглавних букв; [a-яA-Я0-9] – будь-яка буква або цифра.

Приклад 5.3. Нехай ми намагаємося пригадати назву фільму, у якого назва починається зі слова „Star” та наступне слово має 4 букви. Для видачі усіх таких назв напишемо запит:

У запит будуть уключені фільми, такі, як Star Wars та Star Trek.

Приклад 5.4. Нехай треба відібрати всі англомовні назви, які містять частку ‘s присвійного відмінку. Слід виконати запит:

Оскільки символ „’” обмежує рядки, він не може представляти себе безпосередньо. Але існує умова: два апострофа підряд трактуються як апостроф як такий, а не як символ обмеження рядка. Тому підрядок ‘’s представляє шуканий рядок ‘s. Будуть знайдені такі назви, як „Logan’s Run” або “Alice’s Restaurant”.





Дата публикования: 2014-12-28; Прочитано: 294 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...