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

Откуда:
Сообщений: 2
Добрый вечер,

Необходимо получить строки в определенном порядке из таблицы. Порядок задается вручную.
На ум приходит только добавление дополнительного поля где будет задан порядковый номер. Но, в случае его изменения в одной из строк - придется делать замену для остальных.
Как удачней организовать такую систему?
27 дек 09, 02:39    [8123054]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строк в определенном порядке  [new]
jekaSQL
Member

Откуда: Бабруйск
Сообщений: 596
задавать порядковые номера через сто
27 дек 09, 10:51    [8123205]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строк в определенном порядке  [new]
aleks2
Guest
jekaSQL
задавать порядковые номера через сто


А чо не через мульен?

Перенумеровывать триггером
declare @id int -- идентификатор записи
	, @nn int, -- новый номер записи
	, @on int, -- старый номер записи

set @on=33
set @nn=100
select @id=id from aTable WHERE n=@on
if @id is not null begin
	if @nn>@on begin
	  update T SET n=n-1
	  FROM aTable T
	  WHERE T.n between @on and @nn
	end else if @nn<@on begin
	  update T SET n=n+1
	  FROM aTable T
	  WHERE T.n between @nn and @on
	end

	update T SET n=@nn
	FROM aTable T
	WHERE T.id=@id
end
27 дек 09, 12:59    [8123333]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строк в определенном порядке  [new]
FREEDEV
Member

Откуда:
Сообщений: 2
aleks2,

Возможно в таком случае будет удобно создать дополнительную табличку (порядковый номер, ID элемента из указанной таблицы), далее для того что бы поменять местами 2 элемента мы меняем местами ID этих элементов в дополнительной таблице. Но, всеравно перенумеровывать придется при удалении одного из элементов, что бы сохранить порядковые номера. Как по мне перенумерация будет весьма ресурсозатратной операцией, возможно еще найдутся примеры решения проблемы.
27 дек 09, 14:39    [8123594]     Ответить | Цитировать Сообщить модератору
 Re: Выборка строк в определенном порядке  [new]
DataFlower
Member

Откуда: Киев
Сообщений: 9369
Выбор - как организовать - определяется задачей.

Если тебе надо в дальнейшем запросом выбирать отсортированный "ручным способом" набор записей, то ничего лучше доп.поля с номерами по порядку, не придумать, имхо.

Если выборка невелика и заполняется каким-то сложно-сочиненным образом, то можно извратиться - хранят же в реляционной таблице деревья и более сложные структуры, почему бы и список не хранить по такому же принципу? :)
27 дек 09, 17:54    [8123972]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить