powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нумерация в запросе 2
16 сообщений из 16, страница 1 из 1
Нумерация в запросе 2
    #32032391
Bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bob
Гость
А все-таки как перенумеровать строки (без внутренних select)?
В иных серверах есть соответствующий инструмент, а если нет - то обходные не трудоемкие пути (напр. генераторы в IB)
И что имел ввиду jimmy насчет with_numeration ?
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032392
Фотография Moonspell13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где перенумеровать?
В запросе?
В таблице?
Как нумеровать?
Порадком или по какой-то функции?
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032430
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я делаю просто
insert into @tmp select * from myTable
declare @newid int
set @newid = 0 or @parametr
update @tmp set
@newid = id = @newid + 1
Есть еще у меня статья в которой рассквазывается как сделать extended stored proc, с помощью которой можно в результат функции вставить автоикремент. Но помоему как я написал проще и редактировать удобней.
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032442
Фотография Dmitri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT COUNT(t2.ID),t1.ID
FROM dbo.Table t1
INNER JOIN dbo.Table t2 ON t1.ID>=t2.ID
GROUP BY t1.ID
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032444
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симпотично, жаль только с произвольного числа не начнешь
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032448
Фотография Dmitri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
COUNT(t2.ID) + (произвольное число - 1)
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032452
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И в прямь "зыко". А как насчет производительности? Все-таки объединение, count тысячах на 10000 не тормозит?
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032510
Фотография Dmitri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
конечно тормозит, да еще как, простота, она хуже воровства
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032513
iMorsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Dmitri
интересное решение ...
проверил на таблице ~4500 записей
плюс добавил в запрос сортировку
выполняется 15 сек (индекс по id используется)

Мне кажется такими вещами лучше заниматься на клиенте.
Номер записи в локальном буфере могут выводить многие средства разработки.
А в конечном случае именно это и требуется....
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032515
Фотография AndyMandy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032525
Фотография Dmitri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эту функцию можно использовать только в запросах select into
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032751
guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня на SQL70 не работает, может я не въезжаю?
Простите тормоза, но как оно работать будет, если в таблице поля ID нет?

SELECT COUNT(t2.ID),t1.ID
FROM dbo.Table t1
INNER JOIN dbo.Table t2 ON t1.ID>=t2.ID
GROUP BY t1.ID
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032765
Фотография Dmitri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда почти так как описано выше

select
identity(bigint,1,1) as NewID,[select list]
into #tmp
from [table]

SELECT * FROM #tmp

DROP TABLE #tmp
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032800
Bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bob
Гость
Похоже что без tmpTable не обойтись
Кстати, к предыдущему, сначала выполняется identity, а опосля group by. Поэтому

select
cast(0 as int) as NewID,[select list]
into #tmp
from [table]
order by [fields]

declare @i int
set @i = 0
update #tmp set @i = NewID = @i+1

SELECT * FROM #tmp

DROP TABLE #tmp

Не ахти, но работает
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32032801
Bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bob
Гость
Sorry. Конечно order by а не group by
...
Рейтинг: 0 / 0
Нумерация в запросе 2
    #32033720
Фотография MarchCat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, по-моему, номеровать строки в запросе ... извращение

Нужно всячески избегать этого .... именно приучая к этому пользователей ...

прошу прощения за оффтопик :)

Всем МЯФ
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Нумерация в запросе 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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