Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создать номера строк при SELECT, SQL-запросе (MS SQL Server) 
:(
    Опции темы
Pankon
Дата 4.9.2006, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: нет
Всего: 5



Есть SELECT SQL запрос...

Как сделать так, что бы в первом столбце генерировались номера возвращяемых записей 1,2,3,4,5, ...
PM MAIL   Вверх
marcusmae
Дата 5.9.2006, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 2
Всего: 39



Cделать первый столбец с AutoIncrement :

Код

    column = new DataColumn();
    column.DataType = System.Type.GetType("System.Int32");
    column.ColumnName = "id";
    column.ReadOnly = true;
    column.Unique = true;
    column.AutoIncrement = true;
    column.AutoIncrementSeed = 1;
    column.AutoIncrementStep = 1;




--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
kobra
Дата 5.9.2006, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



если MS SQL Server 2005, то там каманда есть для этого.

PM MAIL   Вверх
mr.DUDA
Дата 5.9.2006, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



если SQL Server, нужно поставить в свойстве колонки Identity = true


--------------------
user posted image
PM MAIL WWW   Вверх
Pankon
Дата 5.9.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: нет
Всего: 5



Цитата(Pankon @  4.9.2006,  23:37 Найти цитируемый пост)
Есть SELECT SQL запрос
Цитата(Pankon @  4.9.2006,  23:37 Найти цитируемый пост)
что бы в первом столбце генерировались номера возвращяемых записей 

Попытаюсь еще раз сформулировать вопрос......
Есть запрос
Код

 SELECT ID, NAME FROM T1
, который возвращает записи(для примера ТРИ записи):
23   q1
34  eee
45  rrrr

Мне надо, что бы в первом столбце генерировались номера возвращяемых записей. т.е
1   23   q1
2   34  eee
3   45  rrrr

smile

Как?

ПС. Вопрос про SQL...

Это сообщение отредактировал(а) Pankon - 5.9.2006, 11:13
PM MAIL   Вверх
arilou
Дата 5.9.2006, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 4
Всего: 61



Pankon, вижу одно решение: создать временную таблицу вида

Код

CREATE TABLE #tmp
  autoID int IDENTITY(1,1) NOT NULL,
  ID int NOT NULL, 
  Name nvarchar(50) NOT NULL


Выполнить 

Код

SELECT * FROM table1 INTO #tmp


А вернуть

Код

SELECT * FROM #tmp


Примерно так должно работать в SQL Server. По идее, этот SQL надо пихать в хр.процедуру.


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
mr.DUDA
Дата 5.9.2006, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



Кстати, если результат запроса помещать в датасет, то отдельная колонка не нужна - номер записи будет индексом DataRow-а в коллекции DataTable.Rows


--------------------
user posted image
PM MAIL WWW   Вверх
arilou
Дата 5.9.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 4
Всего: 61



Цитата(mr.DUDA @  5.9.2006,  12:38 Найти цитируемый пост)
Кстати, если результат запроса помещать в датасет, то отдельная колонка не нужна - номер записи будет индексом DataRow-а в коллекции DataTable.Rows 

->
Цитата(Pankon @  5.9.2006,  10:58 Найти цитируемый пост)
ПС. Вопрос про SQL...


отсюда и решение для SQL


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
KAFLAN
Дата 28.9.2006, 03:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 28.9.2006
Где: г. Москва

Репутация: нет
Всего: нет



Более простой в реализации приём чем предложил ув. Arilou:
select count (i1.id) as rank, i1.title
from Table as i1 inner join Table as i2 on
    i1.id >= i2.id
group by i1.id, i1.title
order by rank

Где Table таблица из которой происходит выборка, Id - праймери кей, Title - строковое поле таблицы.

Кроме всего прочего данный приём позволяет выполнять код непосредственно со стороны клиента без использования хранимых процедур.
PM MAIL ICQ Skype MSN   Вверх
Pankon
Дата 7.2.2007, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: нет
Всего: 5



KAFLAN, твой вариант функционирует... Но задача усложнилась, и теперь требуется следующее:
Таблица Table имеет столбец Sort, так вот требуется как и раньше генерировать номера строк, Но сами строки дожны быть упорядочены согласно Sort например по возрастанию...

спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0511 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.