PDA

View Full Version : مرتب سازی بر اساس شماره مجله بصورت رشته



spicirmkh
چهارشنبه 17 آذر 1389, 12:53 عصر
سلام

در بانک شماره مجلات از نوع رشته وارد شده است گزارش می خواهم که مرتب باشد اما بعضی شماره نمی شود

2001 48 1
2001 48 4
2001 48 2-3

حال باید به اینصورت باشد


2001 48 1
2001 48 2-3
2001 48 4

Reza_Yarahmadi
چهارشنبه 17 آذر 1389, 15:15 عصر
من نفهميدم اگه بصورت رشته اي ذخيره شده باشه بايد بصورت داده هاي دوم مرتب بشه(چيزي كه گفتيد ميخوايد) ولي اگر ميخوايد بصورت داده هاي دوم باشه بصورت زير عمل كنيد.

Select
*
From
tbl
Order by
Cast(
Replace(
Replace(Name, '-', '')
, ' ','')
as bigint)
توضيح: مقايسه رشته ها با هم بصورت كاراكتر به كاراكتر انجام ميشه نه بصورت كلي. مثلا عدد 2 از عدد 1265466487484 بزرگتر به حساب مياد.
در كل بهتر اينه كه ساختار كدها رو تغيير بديد.

spicirmkh
چهارشنبه 17 آذر 1389, 15:20 عصر
توی ورود اطلاعات شماره به این صورت وارد شده

1
5
2-3
6
4

وقتی می خواهم مرتب کنم که به این صورت باشد توی query
1
2-3
4
5
6

spicirmkh
چهارشنبه 17 آذر 1389, 15:29 عصر
من نفهميدم اگه بصورت رشته اي ذخيره شده باشه بايد بصورت داده هاي دوم مرتب بشه(چيزي كه گفتيد ميخوايد) ولي اگر ميخوايد بصورت داده هاي دوم باشه بصورت زير عمل كنيد.

Select
*
From
tbl
Order by
Cast(
Replace(
Replace(Name, '-', '')
, ' ','')
as bigint)
توضيح: مقايسه رشته ها با هم بصورت كاراكتر به كاراكتر انجام ميشه نه بصورت كلي. مثلا عدد 2 از عدد 1265466487484 بزرگتر به حساب مياد.
در كل بهتر اينه كه ساختار كدها رو تغيير بديد.

توی بعضی از رکورد بجای عدد یک رشته مثلا S1 وارد شده وقتی با تبدیل به Bigint به مشکل بر می خورد
این برنامه در صورتی درست است که عدد وارد شده باشد