Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить номер записи в запросе / 6 сообщений из 6, страница 1 из 1
06.12.2001, 12:39
    #32018572
Reubast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить номер записи в запросе
Хочется следующего
select RowNum [Номер по порядку], Column1, Column2 ... from table1
Заранее благодарен.
...
Рейтинг: 0 / 0
07.12.2001, 05:41
    #32018606
Reubast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить номер записи в запросе
Похоже это один из нерешаемых в MSSQL запросов. Жаль, в Oracl'e это делается в три пальца.
С уважением, John.
...
Рейтинг: 0 / 0
07.12.2001, 06:59
    #32018611
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить номер записи в запросе
Вариант решения с ипользованием временной таблицы вас устроит ?
...
Рейтинг: 0 / 0
07.12.2001, 07:57
    #32018616
Reubast
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить номер записи в запросе
К сожалению не совсем.
С важением, John
...
Рейтинг: 0 / 0
07.12.2001, 11:31
    #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
07.12.2001, 14:28
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как получить номер записи в запросе / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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