Главная » Программирование » Основы SQL. Оператор SELECT TOP, CASE, EXISTS
Русфонд

Основы SQL. Оператор SELECT TOP, CASE, EXISTS

31 мая 2012 - Рубрики Программирование

4528 просмотров

Продолжаем изучение языка sql. Рассмотрим такие полезные операторы, как TOP, CASE и EXISTS.

Оператор TOP позволяется взять только первые n записей результирующено набора.

C помощью ператора CASE можно организовать ветвление, то есть в зависимоти от выполнения определенных условий вывести определенный результат.

Оператор EXISTS позволяет проверить существование результата.

Примеры

ТОР

Такая запись вернет первую запись из результата выборки

select top 1 name 
from enployees

или первые 5 записей с конца

select top 5 name
from employees
order by name desc

Для Oracle функция не будет работать, своего рода аналог используется функция rownum. Например, выбрать первые 10 строк

where rownum<10

CASE

В сайдбар справа добавлена кнопка Google+. Если вам поможет данный материал, прошу вас нажмите на кнопку - порекомендуйте сайт в Google.

Как уже было сказано, оператор CASE позволяет выполнять различные условия в зависимости от выполнения каких-либо условий.

Рассмотрим некоторые примеры

1) Если возраст 25,26 или 41, то вывести возраст в виде текста. В данном примере  после case идет название поля для условия, после when идет условие (проверка равенства значению), после then стоит ркзультат, который необходимо вернуть. Если значение не удовлетворяет ни одному условию, то вернется результат из блока else.

select *,case age
when 25 then 'двадцать пять'
when 26 then 'двадцать шесть'
when 41 then 'сорок один'
else 'другие цифры'
end
from employees

2) второй пример похож на первый, но условие уже целиком после ключевого слова when

select *, case 
when age>30 and age<40 then 'от 30 до 40'
when age<30 then 'меньше тридцати'
else 'больше сорока'
end
from employees

Обратите внимание, что возможно создавать составные условия с помощью операторов AND, OR, NOT

EXISTS

С помощью оператора  EXISTS можно проверить, например, есть ли записи в определенной таблице. Обычно применяется вместе с оператором CASE.

select case 
when exists(select * from employees) then 'есть записи'
else 'нет записей'
end

Думаю эти 3 оператора значительно облегчат вам жизнь при использовании с уже изученными темами по оператору SELECT ,WHERE, ORDER BY.

Если этот материал оказался вам полезен, порекомендуйте его в в Google, нажав кнопку Google+ справа в сайдбаре или через кнопки социальных сервисов ниже.

П.С. не забудьте оставить комментарий к статье, а также поделиться ссылкой с друзьями и коллегами через социальные сервисы или скопировав ссылку на статью ниже. Кроме того, вы можете предложить тему статьи через кнопку слева "Предложить тему статьи". Там же можно оставить пожелания, идеи по развитию сайта, а также благодарности (ну а вдруг)
П.П.С. предлагаю вам также вступить в Группа Вконтакте!группу Вконтакте, где вы сможете пообщаться с участниками на интересующие вас темы. Смелее!!!
Если вы больше времени проводите в Twitter, то за обновлениями на сайте можно следить, подписавшись на мою лентуTwitter: follow me!

Возможно вам также будут интересны статьи :

 

Предыдущие материалы из данной категории:

Комментариев: 0 , , , ,

Понравилась статья? Поделитесь ссылкой




Оставьте комментарий:




:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Я человек, а не бот.