View Full Version : مرتب سازی خاص
Blackk_lightt
سه شنبه 12 آذر 1387, 13:20 عصر
سلام
من لازم دارم که نتیجه Select با ترتیب خاصی باشه.نه صعودی نه نزولی
اول یه نوع خاص دوم یه نوع دیگه بقیش فرقی نمیکنه
چه کنم ؟
amin_alexi
سه شنبه 12 آذر 1387, 13:24 عصر
سلام
امید وارم سوال رو درست فهویده باشم و گرنه اگه میشه بیشتر توضیح بدی !
شاید کارت با Union درست بشه
تیکه اول رو Select کن یه جور مرتب کن و تیکه دوم رو Select کن یه جور دیگه مرتب کن و بقیه رو هم که فرقی نداره این 3 تیکه رو Union کن ...
رضا عربلو
سه شنبه 12 آذر 1387, 13:36 عصر
اگر منظورتان این است که مقدار یک فیلد (مثلاً برای field1 مقدار "علی") اول بیاید. می توانید بصورت زیر عمل بکنید:
ORDER BY CASE Filed1 WHEN "علی" THEN 0 ELSE 1 , .....
Blackk_lightt
سه شنبه 12 آذر 1387, 14:10 عصر
سلام
این Query منه
select country,count(*) from IP group by Country
توی Country یا ایران یا X یا چیزای دیگه ذخیره میشه
باید اول X بیاد بعد ایران بعد بقیش
ممنون
linux
سه شنبه 12 آذر 1387, 20:50 عصر
سلام
این Query منه
select country,count(*) from IP group by Country
توی Country یا ایران یا X یا چیزای دیگه ذخیره میشه
باید اول X بیاد بعد ایران بعد بقیش
ممنون
همین لیست را بصورت درهم وقتی جلوی شما می گذارند که مرتب کنید از کجا می فهمید که باید X اول بیاید؟
amin_alexi
سه شنبه 12 آذر 1387, 20:59 عصر
من یه اشاره ای کردم که باید با uonin انجام بدی ببین با این کارت راه می افته !!!
select country,count(*) from IP group by Country
where Country = 'X'
Union All
select country,count(*) from IP group by Country
where Country = 'iran' and Country <> 'X'
Union All
select country,count(*) from IP group by Country
where Country <> 'iran' and Country <> 'X'
فکر کنم با این کارتون راه بیفته !!
Blackk_lightt
یک شنبه 17 آذر 1387, 08:59 صبح
سلام
تا اینجاش درسته
"select country,count(*) from IP where country = 'X' group by Country union " +
"Select country,count(*) from IP where country <> 'X' and country = 'IRAN, ISLAMIC REPUBLIC OF' group by Country union "
یهنی اول X میاد بعد ایران
ولی وقتی اینو اضافه میکنم همش به هم می ریزه :
"select country,count(*) from IP where country = 'X' group by Country union " +
"Select country,count(*) from IP where country <> 'X' and country = 'IRAN, ISLAMIC REPUBLIC OF' group by Country union "+
"Select country,count(*) from IP where country <> 'X' and country <> 'IRAN, ISLAMIC REPUBLIC OF' group by Country";
یه چیز دیگه :
باید بعد از X و ایران بقیش بر اساس Count نزولی مرتب شه
ممنون از کمک دوستان
amin_alexi
یک شنبه 17 آذر 1387, 18:29 عصر
select '1' as Sort,country,count(*) from IP group by Country
where Country = 'X'
Union All
select '2' as Sort,country,count(*) from IP group by Country
where Country = 'iran' and Country <> 'X'
Union All
select '3' as Sort,Country,count(*) from IP group by Country
where Country <> 'iran' and Country <> 'X'
Order By Sort
از Union All استفاده کن و این که نوشتم ....
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.