PDA

View Full Version : مشكل با order by زماني كه داده از نوع nvarchar مي باشد



saeednadery
شنبه 26 بهمن 1387, 14:58 عصر
با سلام
من يك بانك اطلاعاتي دارم كه مربوط به تجهيزات كامپيوتر مي باشد و يك فيلد آن كه از نوع Nvarchar مي باشد مر بوط به سرعت كامپيوتر است . حال مي خواستم تمام كامپيوتر هائي كه سرعت آنها بين 133 تا 2400 مي باشد را برايم بياورد و در ضمن order by آن را نيز اين فيلد قرار داده ام اما اطلاعاتي كه براي من مي آورد به اين صورت است كه اول 1000 را مي آورد بعد 133 يعني اول بر مبناي كاركتر اول sort مي شود و بعد كاركتر دوم و ... به نظر شما مشكل كجا هست .
با تشكر

babak62
شنبه 26 بهمن 1387, 15:06 عصر
اول به cast کن به intبعد انجامش بده.

davoodrm666_666
یک شنبه 27 بهمن 1387, 07:46 صبح
اگه مبنای سرعت شما عددی است چرا از nvarchar استفاده می کنید؟

linux
یک شنبه 27 بهمن 1387, 07:55 صبح
با سلام
من يك بانك اطلاعاتي دارم كه مربوط به تجهيزات كامپيوتر مي باشد و يك فيلد آن كه از نوع Nvarchar مي باشد مر بوط به سرعت كامپيوتر است . حال مي خواستم تمام كامپيوتر هائي كه سرعت آنها بين 133 تا 2400 مي باشد را برايم بياورد و در ضمن order by آن را نيز اين فيلد قرار داده ام اما اطلاعاتي كه براي من مي آورد به اين صورت است كه اول 1000 را مي آورد بعد 133 يعني اول بر مبناي كاركتر اول sort مي شود و بعد كاركتر دوم و ... به نظر شما مشكل كجا هست .
با تشكر
مشکلی در کار نیست ، کارکترها وقتی ارزش عددی نداشته باشند اینگونه مرتب می شوند.

saeednadery
یک شنبه 27 بهمن 1387, 11:55 صبح
با تشكر از همه دوستان
در اوراكل مي توانيم با دستور TO_Number ، رشته را به عدد تبديل كرد در SQL بدون اينكه بخواهم data type را تغيير دهم چگونه مي توانم اين كار را انجام دهم
با تشكر

taheri-ali
یک شنبه 27 بهمن 1387, 12:12 عصر
با تشكر از همه دوستان
در اوراكل مي توانيم با دستور TO_Number ، رشته را به عدد تبديل كرد در SQL بدون اينكه بخواهم data type را تغيير دهم چگونه مي توانم اين كار را انجام دهم
با تشكر

convert (int,FiledName)

davoodrm666_666
یک شنبه 27 بهمن 1387, 12:45 عصر
cast(Fieldname as bigint)