Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Select выборки  [new]
Igorgg
Member

Откуда:
Сообщений: 83
Здравствуйте, подскажите, как одним запросом
выбрать из таблицы все записи по условию, чтобы одна запись всегда была верхней.

Select * from et where et.lat > 5 or et.ln = 3

Надо, чтобы et.ln = 3 всегда была верхней, а остальные записи за ней.
27 окт 11, 20:55    [11512357]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
Glory
Member

Откуда:
Сообщений: 104751
порядок записей в результате задается фразой ORDER BY
27 окт 11, 20:59    [11512374]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
Igorgg
Member

Откуда:
Сообщений: 83
цифры - произвольные, order by здесь не подойдет, так как массив может содержать 2,3,4,7,6,
а et.ln - содержит 6, нужно, чтобы вывелось так
6 2 3 4 7 6
27 окт 11, 21:03    [11512401]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
Glory
Member

Откуда:
Сообщений: 104751
Igorgg
цифры - произвольные, order by здесь не подойдет

Еще раз. Только команда order by задает упорядочивание записей в результате запроса


Igorgg
а et.ln - содержит 6, нужно, чтобы вывелось так
6 2 3 4 7 6

Ну так сделайте так, чтобы для 6-ки в order by попадало какое-то наименьшее значение
27 окт 11, 21:09    [11512428]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
Igorgg
Member

Откуда:
Сообщений: 83
еще раз повторю - цифры произвольные, заранее не известные, нужно чтобы 2 часть условия всегда находилась вверху запроса
27 окт 11, 21:18    [11512476]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
Glory
Member

Откуда:
Сообщений: 104751
Igorgg
еще раз повторю - цифры произвольные, заранее не известные, нужно чтобы 2 часть условия всегда находилась вверху запроса

Ну так напишите order by - никакая другая команда упорядочивание не делает
27 окт 11, 21:20    [11512487]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
ORDER BY CASE WHEN et.ln = 3 THEN NULL ELSE 0 END, <другие выражения, уточняющие порядок записей>
27 окт 11, 21:24    [11512509]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Igorgg,

в общем, NULL считается наименьшим из всех возможных значений при упорядочивании ORDER BY
27 окт 11, 21:48    [11512596]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
Igorgg
Member

Откуда:
Сообщений: 83
Спасибо
27 окт 11, 21:58    [11512621]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
HelenM
Member

Откуда: Москва
Сообщений: 53
Igorgg
чтобы одна запись всегда была верхней.


"Одна запись" - вы точно знаете, какая именно? Если да, то я бы использовала составной запрос с UNION.
То есть, по сути вы делаете два селекта и "склеиваете" "всегда верхнюю запись" с остальной выборкой.
28 окт 11, 09:25    [11513602]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Igorgg,

зависит от содержимого таблицы.

Например, что какой должен быть результат, если в таблице такие данные:
select 1 lat, 3 ln union all
select 4, 1 union all
select 6, 1 union all
select 6, 3 union all
select 6, 5

Или такие:
select 1 lat, 3 ln union all
select 4, 1 union all
select 6, 1 union all
select 6, 5

Или такие:
select 4 lat, 1 ln union all
select 6, 1 union all
select 6, 3 union all
select 6, 5

Непонятно, задваивается ли запись, в которой ln=3.
28 окт 11, 11:15    [11514318]     Ответить | Цитировать Сообщить модератору
 Re: Select выборки  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31956
HelenM
Если да, то я бы использовала составной запрос с UNION.
То есть, по сути вы делаете два селекта и "склеиваете" "всегда верхнюю запись" с остальной выборкой.
Порядок записей в результате задается фразой ORDER BY
28 окт 11, 11:53    [11514668]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить