Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Пример2: Вывести все имеющиеся модели ПК с указанием цены. Отметить самые дорогие и самые дешевые модели.




1. SELECT DISTINCT model, price,

2. CASE price

3. WHEN (SELECT MAX(price)

4. FROM PC)

5. THEN 'Самый дорогой'

6. WHEN (SELECT MIN(price)

7. FROM PC)

8. THEN 'Самый дешевый'

9. ELSE 'Средняя цена'

10. END comment

11. FROM PC

12. ORDER BY price;

В результате запроса получим:

  350.0 Самый дешевый
  350.0 Самый дешевый
  400.0 Средняя цена
  600.0 Средняя цена
  600.0 Средняя цена
  850.0 Средняя цена
  950.0 Средняя цена
  980.0 Самый дорогой

Предикат LIKE

Синтаксис:

1. <Выражение для вычисления значения строки>

2. [NOT] LIKE <Выражение для вычисления значения строки>

3. [ESCAPE <символ>]

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

  • символ подчеркивания (_), который можно применять вместо любого единичного символа в проверяемом значении;
  • символ процента (%) заменяет последовательность любых символов (число символов в последовательности может быть от 0 и более) в проверяемом значении.

Если проверяемое значение соответствует образцу с учетом трафаретных символов, то значение предиката равно TRUE. Ниже приводится несколько примеров написания образцов.

'abc%' Любые строки, которые начинаются с букв «abc»
'abc_' Строки длиной строго 4 символа, причем первыми символами строки должны быть «abc»
'%z' Любая последовательность символов, которая обязательно заканчивается символом «z»
'%Rostov%' Любая последовательность символов, содержащая слово «Rostov» в любой позиции строки

 

Пример: Найти все корабли, имена классов которых заканчиваются на букву ‘о’, но не на ‘go’

1. SELECT *

2. FROM Ships

3. WHERE class NOT LIKE '%go' AND

4. class LIKE '%o';

Если искомая строка содержит трафаретный символ, то следует задать управляющий символ в предложении ESCAPE. Этот управляющий символ должен использоваться в образце перед трафаретным символом, сообщая о том, что последний следует трактовать как обычный символ. Например, если в некотором поле следует отыскать все значения, содержащие символ «_», то шаблон ‘%_%’ приведет к тому, что будут возвращены все записи из таблицы. В данном случае шаблон следует записать следующим образом:

 

'%#_%' ESCAPE '#'

 

Для проверки значения на соответствие строке «25%» можно воспользоваться таким предикатом:

LIKE '25|%' ESCAPE '|'

Истинностное значение предиката LIKE присваивается в соответствии со следующими правилами:

  • если либо проверяемое значение, либо образец, либо управляющий символ есть NULL, истинностное значение равно UNKNOWN;
  • в противном случае, если проверяемое значение и образец имеют нулевую длину, истинностное значение равно TRUE;
  • в противном случае, если проверяемое значение соответствует шаблону, то предикат LIKE равен TRUE;
  • если не соблюдается ни одно из перечисленных выше условий, предикат LIKE равен FALSE.
Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...