PDA

View Full Version : ایجاد شماره سطر در یک select



small_programmer
دوشنبه 03 اسفند 1383, 22:27 عصر
برای ایجاد شماره سطر در یک select در sql باید چکار بکنیم
مثلا یک جدول به نام person داریم که حاوی فیلد های name,age است و دستور زیر را نوشته ایم

select name,age from person where age>30
حال می خواهیم یک ستون هم به نام row ID داشته باشیم که همان شماره ردیف در جدول های عادی است
البته من یک روش دارم ولی چندان کاربردی و جالب نیست وسرعتش هم کم است
خیلی ممنون از راهنمایی که خواهید کرد

AminSobati
دوشنبه 03 اسفند 1383, 23:58 عصر
http://www.barnamenevis.org/forum/viewtopic.php?t=13854

small_programmer
چهارشنبه 05 اسفند 1383, 15:59 عصر
خیلی ممنون مخصوصا به خاطر اینکه به سوالها زود رسیدگی می کنید :flower: :flower:
روش شما هم جالب بود ولی روشی را که قبلا گفته بودم کاربردی نیست برایتان می نویسم


use pubs
declare @t1 table(row_id int identity,au_fname varchar(40),au_lname varchar(20))
insert into @t1 (au_fname,au_lname)
select au_fname,au_lname from authors
select * from @t1
فکر می کنم روش من سریعتر باشه نظر شما چیه؟
لطفا نظرتون رو بنویسید.
:موفق:

AminSobati
چهارشنبه 05 اسفند 1383, 17:13 عصر
دوست عزیزم،
به طور کلی هیچ کدوم از این روشها یک روش اصولی و ایده آل نیستند ولی در نوع خود یک خلاقیت در پاسخ به این نیاز محسوب میشن. اشکال روش شما هم اینه که در View نمیشه ازش استفاده کرد.
ایده آل ترین روش چیزیه که SQL Server 2005 در غالب Ranking Function ارئه میکنه.

small_programmer
پنج شنبه 06 اسفند 1383, 04:58 صبح
خیلی ممنون آقای ثباتی
:موفق:

AminSobati
جمعه 07 اسفند 1383, 20:14 عصر
موفق باشید.. :)

ahoora
چهارشنبه 19 اسفند 1383, 13:23 عصر
سلام


select count (*) as rownum,a1.name,a2.age from person a1, person a2 where age>30 group by name
:sunglass:

AminSobati
دوشنبه 24 اسفند 1383, 13:20 عصر
select count (*) as rownum,a1.name,a2.age from person a1, person a2 where age>30 group by name
دوست عزیزم، واقعا این Query رو اجرا کردین و جواب گرفتین؟!
از نظر منطق دستور Select، وقتی از عملگر Count و یا مشابهش استفاده میکنین، تمام فیلدهای خارج از عملگر(در اینجا مثل a1.name,a2.age) باید در Group By شرکت کنند