PDA

View Full Version : مرتب کردن یک ستون عددی در دیابیس SQLite ؟!



Heidari66
چهارشنبه 26 فروردین 1394, 09:01 صبح
سلام

چطور میتونم یه ستون عددی رو توی دیتابیس SQLite اینگونه مرتب کنم؟!

1
10
100
12
14
2
3+4
5
6
8
9-10

میخوام اینجوری مرتب بشه:

1
2
3+4
5
6
8
9-10
12
14
100

اینو انجام دادم جواب نداد:
Select * FROM db order by code ASC

SabaSabouhi
چهارشنبه 26 فروردین 1394, 12:49 عصر
سلام

چطور میتونم یه ستون عددی رو توی دیتابیس SQLite اینگونه مرتب کنم؟!

1
10
100
12
14
2
3+4
5
6
8
9-10

میخوام اینجوری مرتب بشه:

1
2
3+4
5
6
8
9-10
12
14
100

اینو انجام دادم جواب نداد:
Select * FROM db order by code ASC

سلام
گمان کنم با این روش شدنی نباشه، چون این ستونی که شما نمایش دادی، جنسش string هست و هنگام مرتب
کردن حتما 12 قبل از 8 میاد.
به نظر من راه حل اینه که یه ستون دیگه داشته باشی که مقدار عددی داشته باشه به شکلی که برای 4+3 مقدار 3
و برای 10-9 مقدار 9 رو توش نگهداری کنی و بر اساس همون ستون مرتب کنی.

صبا صبوحی

Heidari66
چهارشنبه 26 فروردین 1394, 14:07 عصر
فرض کنید اینجوریه:


1

10


100

12

14

2
22

3

33

5

6

8

88

9

حالا باید چکار کنم؟! اون دستور جواب نداد؟!!

Heidari66
پنج شنبه 27 فروردین 1394, 06:56 صبح
کسی نبودد؟!

SabaSabouhi
پنج شنبه 27 فروردین 1394, 10:19 صبح
فرض کنید اینجوریه:


1

10


100

12

14

2
22

3

33

5

6

8

88

9

حالا باید چکار کنم؟! اون دستور جواب نداد؟!!




سلام
دوست عزیز، کمی شکیبا باش. من و دیگران 24 ساعته online نیستیم. وقتی پست شما رو ببینیم، در صورتی که دانش و تجربه‌ی لازم رو داشته باشیم
به پرسش شما پاسخ می‌دیم. نیازی به پست‌های تکراری نیست.

برای مرتب کردن، یا می‌تونی بر اساس رشته مرتب کنی، یا بر اساس عدد. این چیزی که نوشتی، بر اساس رشته مرتب شده و کافیه که فیلدت رشته باشه
اما اگه هر نوع ترتیب متفاوتی رو نیاز داری، می‌تونی از راه‌کاری که من تو پست قبلی بهش اشاره کردم استفاده کنی.
یعنی یه ستون برای مرتب کردن به جدول اضافه کنی و هر جوری که تمایل داری و با هر فرمولی که دوست داری، اون رو با اعداد مرتب شده پر می‌کنی
و همیشه ترتیب رو بر اساس این ستون قرار می‌دی.

صبا صبوحی

Heidari66
پنج شنبه 27 فروردین 1394, 11:09 صبح
دوست گرامی من هم به فاصله یک روز پست گذاشتم

دستور کد درست بود
ستون رو تبدیل به Integer کردم مشکلم حل شد...

ممنون از راهنماییت