PDA

View Full Version : select نامرتب



prince-of-persia
پنج شنبه 16 شهریور 1385, 13:00 عصر
سلام

من یک دستور sql می خوام که برای یک فیلد خاص مثلا فیلد code تعدادی ورودی بهش بدم و اون بدون در نظر گرفتن ترتیب درج اون ها در دیتابیس و دقیقا به همون ترتیبی که من مقدار وارد کردم دستور select رو برای من انجام بده.

مثلا اگر در بانک من مقادیر :
1 ali
2 reza
3 kamran
4 kambiz
وارد شده است دستور sql ایی بنویسم که بهش بدم 4 1 3 2 (منظورم نامنظم بودن است )و اون برای من برگردونه
4 kambiz
1 ali
3 kamran
2 reza

با تشکر

sarami
پنج شنبه 16 شهریور 1385, 15:30 عصر
اگه می خواین بصورت رندونم از جدول انتخاب داشته باشی راهش این نیست و باید از تابع رندوم(انتخاب تصادفی) استفاده کنین. البته من حدث می زنم منظور شما این باشه

prince-of-persia
یک شنبه 19 شهریور 1385, 13:02 عصر
نه من نمی خوام به صورت شانسی انتخاب داشته باشم
من دقیقا میدونم کدوم رکورد ها رو می خوام اما میخوان به صورت نامرتب اونا رو انتخاب کنم.
به هر حال یه دستور با این تابع random بنویسید شتید بعدا بدررم خورد

البته هنوز در رابطه با مسئله فوق مشکل دارم
ممنوم میشم اگر از راهنمایی هاتون استفاده کنم.

karmand
دوشنبه 20 شهریور 1385, 06:23 صبح
یک جدول موقت بساز زمان گزارش گیری ابتدا آن را خالی کن سپس رکوردهای دلخواه را در آن بترتیب دلخواه بریز و از آن گزارش بگیر
راه دوم : یک فیلد جدید بساز زمانی که میخواهی گزارش بگیری در آن شماره بزن و گزارشت را بر اساس آن سورت کن

اَرژنگ
دوشنبه 20 شهریور 1385, 06:36 صبح
سلام

من یک دستور sql می خوام که برای یک فیلد خاص مثلا فیلد code تعدادی ورودی بهش بدم و اون بدون در نظر گرفتن ترتیب درج اون ها در دیتابیس و دقیقا به همون ترتیبی که من مقدار وارد کردم دستور select رو برای من انجام بده.

مثلا اگر در بانک من مقادیر :
1 ali
2 reza
3 kamran
4 kambiz
وارد شده است دستور sql ایی بنویسم که بهش بدم 4 1 3 2 (منظورم نامنظم بودن است )و اون برای من برگردونه
4 kambiz
1 ali
3 kamran
2 reza

با تشکر


Select * from Table1 Where Name='Kambiz'
Union
Select * from Table1 Where Name='Ali'
Union
Select * from Table1 Where Name='Kamran'
Union
Select * from Table1 Where Name='Reza'

سنبله کار
دوشنبه 20 شهریور 1385, 08:50 صبح
نه من نمی خوام به صورت شانسی انتخاب داشته باشم
من دقیقا میدونم کدوم رکورد ها رو می خوام اما میخوان به صورت نامرتب اونا رو انتخاب کنم.
به هر حال یه دستور با این تابع random بنویسید شتید بعدا بدررم خورد

البته هنوز در رابطه با مسئله فوق مشکل دارم
ممنوم میشم اگر از راهنمایی هاتون استفاده کنم.
منظور آقای صارمی هم همین بود که شما می تونید یک فیلد number با سایز Double ایجاد کنید و در قسمت Default اون تابع Rnd رو قرار بدید حالا با اضافه کردن هر رکورد یک عدد اعشاری تصادفی خواهید داشت و هنگام گزارش گیری می تونید بر مبنای همون مرتب کنید که عملا نامرتبه .

prince-of-persia
دوشنبه 20 شهریور 1385, 08:51 صبح
آرژنگ جان من دستورات شما را نوشتم اما بازم به همون ترتیبی که توی جدول درج شده به من خروجی میده
اگر ممکنه بیشتر توضیح بدید.

اَرژنگ
دوشنبه 20 شهریور 1385, 08:53 صبح
آرژنگ جان من دستورات شما را نوشتم اما بازم به همون ترتیبی که توی جدول درج شده به من خروجی میده
اگر ممکنه بیشتر توضیح بدید.
اگر این کار با دات نت انجام میدید در قسمتASP.net ادامه بدیم، !See you there

prince-of-persia
دوشنبه 20 شهریور 1385, 09:06 صبح
دوستان من چند تا محدودیت در رابطه با این کار دارم:
اول:نمیتونم برای مرتب کردن از یک جدول جدید استفاده کنم
دوم:نمیتونم هیچ فیلدی به جدولم اضافه کنم که داخل اون یک فیلد عددی به اون ترتیبی که من میخوام باشه

من فقط یک دستور sql میتونم داشته باشم و اینکه میدونم کدوم رکورد ها رو می خوام
منظورم اینه که یک فیلد کد وجود داره که من چند تا از اون کد ها و ترتیب اونها رو دارم یعنی اگر
داخل جدول من برای فیلد code مقادیر
1
2
3
4
5
وارد شده باشه من میخوام دستوری بنویسم که به من خروجی زیر رو بده
4
1
5
2
و این در حالی است که دستور آقای اَرژنگ به من خروجی زیر رو میده
1
2
4
5
که مطلوب نیست و همونطور که گفتم نمیتونم از یک جدول جدید و یک فیلد جدید استفاده کنم

ممنون میشم اگر بازم راهنمایی کنید و نظراتتون رو بگید
--------------------
بله بله حتما
من میخوام این کار رو با asp.net انجام بدم

سنبله کار
دوشنبه 20 شهریور 1385, 09:11 صبح
شما به سادگی می تونید دستور آقای ارژنگ رو تغییر بدید و بجای name در اون code رو بگذارید و مقادیر مورد نظرتون رو مقابلش قرار بدید خروجی همونی می شه که شما خواستید .

prince-of-persia
دوشنبه 20 شهریور 1385, 09:24 صبح
من همین کاری که میگید رو انجام دادم و منتقا هم باید همونی بشه که شما می گید اما اینطور نیست و ترتیبش همونجوریه که توی جدول هست

sarami
دوشنبه 20 شهریور 1385, 09:27 صبح
دوست عزیز یه query بسازین و درونش یه فیلد محاسباتی که اعداد رندوم تولید میکنه قرار بدین حال بر اساس اون سورتش کنید نتیجه همان چیزی که میخواهید خواهد بود سورت نامرتب....

prince-of-persia
دوشنبه 20 شهریور 1385, 09:28 صبح
http://www.andisheh-sabz.ir/sql.gif

prince-of-persia
دوشنبه 20 شهریور 1385, 09:33 صبح
عزیز همونطور که گفتم تصادفی نیستندsarami

prince-of-persia
دوشنبه 20 شهریور 1385, 09:53 صبح
اگر این مطلب رو بخونید بهتر متوجه هدف من میشید
http://barnamenevis.org/forum/showthread.php?t=52435&page=2

sarami
دوشنبه 20 شهریور 1385, 09:54 صبح
دوست عزیز وقتی شما میخوایین بصورت نامرتب یه سری ردیف رو داشته باشین منطقی ترین راه اینکه اعدادی بصورت رندونم تولید کنین و سپس بر اساس اون سورت کنین . من یک نمونه برنامه براتون گذاشتم دانلود کنین و query داخل اون رو Run کنین دقیقا همون چیزیه که می خواین
دانلود نمونه برنامه (http://www.box.net/public/7crp3sdkdv)