powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Использование IN в SQL
4 сообщений из 4, страница 1 из 1
Использование IN в SQL
    #32086358
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет весм.

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

Не знаю почему но результат сортируется по id, а неостаётся в порядке
записанном в IN, а этот порядок для меня выжен.
...
Рейтинг: 0 / 0
Использование IN в SQL
    #32086363
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извеняюсь, что получилось два одинаковых сообщения,
буду презнателен за удаление одного экземпляра.
...
Рейтинг: 0 / 0
Использование IN в SQL
    #32086554
Фотография cvasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее всего у вас создан кластерный индекс по полю 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
Использование IN в SQL
    #32129937
Фотография Alexandr Nikolaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем кто отвечал - проблема уже решена.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Использование IN в SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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