powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить номер записи в запросе
6 сообщений из 6, страница 1 из 1
Как получить номер записи в запросе
    #32018572
Reubast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочется следующего
select RowNum [Номер по порядку], Column1, Column2 ... from table1
Заранее благодарен.
...
Рейтинг: 0 / 0
Как получить номер записи в запросе
    #32018606
Reubast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Похоже это один из нерешаемых в MSSQL запросов. Жаль, в Oracl'e это делается в три пальца.
С уважением, John.
...
Рейтинг: 0 / 0
Как получить номер записи в запросе
    #32018611
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант решения с ипользованием временной таблицы вас устроит ?
...
Рейтинг: 0 / 0
Как получить номер записи в запросе
    #32018616
Reubast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению не совсем.
С важением, John
...
Рейтинг: 0 / 0
Как получить номер записи в запросе
    #32018627
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в таблице есть первичный ключ, то тогда что-то вроде такого

SELECT (Select Sum(1) From mytable t1 Where t1.id <= t2.id) AS [nr], t2.*
FROM maytable AS t2
ORDER BY nr

PS
Но как долго это будет работать на больших таблицах - не возмусь предсказать.
...
Рейтинг: 0 / 0
Как получить номер записи в запросе
    #32018642
Фотография Александр Гладченко
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lets you add row numbering to your output. It may not be an ideal solution (temp table with an identity column would probably be more efficient) but it shows cursors and some other little coding techniques. Enjoy!


--**************************************
-- Name: RowCounterCursor
-- Description:Lets you add row numbering to your output. It may not be an ideal solution (temp table with an identity column would probably be more efficient) but it shows cursors and some other little coding techniques.
Enjoy!
-- By: Greg
--
--
-- Inputs:None
--
-- Returns:None
--
--Assumes:Uses the Northwind dB
--
--Side Effects:None
--This code is copyrighted and has limited warranties.
--Please see http://www.Planet-Source-Code.com/xq/ASP/txtCodeId.252/lngWId.5/qx/vb/scripts/ShowCode.htm
--for details.
--**************************************

/*
Author: Greg
Title: RowCounterCursor
Date: December 8, 2000
It was 20 years ago today...
*/
USE Northwind
-- Set up variables we'll use later
DECLARE @A INT,
@Zeroes INT,
@RowID CHAR(20),
@OrdID CHAR(10),
@ShipTo CHAR(20),
@Cust CHAR(20),
@Message CHAR(100)
set @A=1 -- initialize our row counter
-- set up a "Header" row
set @Message = 'Row Order IDShip to City Customer'
PRINT @Message
set @Message = '----------------------------------------------------'
PRINT @Message
-- Create a cursor
DECLARE Counter CURSOR FOR
SELECT OrderID, ShipCity, CustomerID
FROM orders
OPEN Counter
FETCH NEXT FROM Counter INTO @OrdID, @ShipTo, @Cust

WHILE @@FETCH_STATUS = 0


BEGIN
-- formatting the row to begin with zeroes, not necessary but a nice touch
SET @Zeroes = STR(LEN(@A))
SELECT @Zeroes =
CASE @Zeroes
WHEN '1' THEN '2'
WHEN '2' THEN '1'
ELSE '0'
END
SET @Message = REPLICATE ('0', @Zeroes) + CAST(@A AS CHAR(5)) + SPACE(4 - @Zeroes) + @OrdID + ' ' + @ShipTo + ' ' + @Cust
PRINT @Message
FETCH NEXT FROM Counter INTO @OrdID, @ShipTo, @Cust
SET @A = @A + 1
END
-- clean up after ourseves
CLOSE Counter
DEALLOCATE Counter
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить номер записи в запросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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