Гость
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Использование IN в SQL / 4 сообщений из 4, страница 1 из 1
04.01.2003, 11:49
    #32086358
Alexandr Nikolaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование IN в SQL
Привет весм.

Кто нибудь знает, как после выполнения запроса типа
SELECT id, name from Table1 where id IN (526,536,13)
получить НЕ ОТСОРТИРОВАННЫЙ результат по id ???????

Не знаю почему но результат сортируется по id, а неостаётся в порядке
записанном в IN, а этот порядок для меня выжен.
...
Рейтинг: 0 / 0
04.01.2003, 11:51
    #32086363
Alexandr Nikolaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование IN в SQL
Извеняюсь, что получилось два одинаковых сообщения,
буду презнателен за удаление одного экземпляра.
...
Рейтинг: 0 / 0
04.01.2003, 22:16
    #32086554
cvasil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование IN в SQL
Скорее всего у вас создан кластерный индекс по полю id, поэтому и результат извлекается
упорядоченным по этому полю, что, в общем то, и не удивительно.
Нужный Вам результат можно получить с использованием
временной таблицы. Вот пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
set nocount on
create table #Table1(id int identity primary key, data int)
insert #Table1(data) values( 10 )
insert #Table1(data) values( 20 )
insert #Table1(data) values( 30 )
insert #Table1(data) values( 40 )
select * from #Table1
go

 -- Хотим извлечь строки из #Table1 в порядке 4,1,2 по id
 

 -- не работает, строки упорядочены по #Table1.id
 
select id, data from #Table1 where id in( 4 , 1 , 2 )
go

 -- Создаем времменную таблицу и заполняем ее значениями в нужном порядке
 
create table #t(id int identity, id_Table1 int not null)
insert #t(id_Table1) values( 4 )
insert #t(id_Table1) values( 2 )
insert #t(id_Table1) values( 1 )

 -- работает
 
select #Table1.* from #Table1
join #t on #t.id_Table1=#Table1.id
order by #t.id
go
drop table #t
drop table #Table1
go

Пример сделан для MS SQL (Sybase под руками сейчас нет), но идея должна быть понятна.
...
Рейтинг: 0 / 0
31.03.2003, 11:02
    #32129937
Alexandr Nikolaev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование IN в SQL
Спасибо всем кто отвечал - проблема уже решена.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Использование IN в SQL / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]