gençler elimde iki sütun data var, birinde 410, 420, 421, 430 şeklinde kategoriler, diğer sütunda da bu kategorilere karşılık gelen kişi sayıları var diye düşünün.sql'de order by ile 410,420,421,430 şeklinde (veya tersi) sorgu alabiliyosun ama ben 430,420,421,410 şeklinde almak istiyorum. anlatabild
gençler elimde iki sütun data var, birinde 410, 420, 421, 430 şeklinde kategoriler, diğer sütunda da bu kategorilere karşılık gelen kişi sayıları var diye düşünün.
sql'de order by ile 410,420,421,430 şeklinde (veya tersi) sorgu alabiliyosun ama ben 430,420,421,410 şeklinde almak istiyorum.
anlatabildim mi mevzuyu, nası yaparız?
0
yeni bir sütun açardım ben cat_order gibi, oradan sıralatırdım. artan ya da azalan değil tam istediğin.
şöyle de olabilir:
SELECT kategoriid FROM tablo ORDER BY FIELD (kategoriid, '430','420','421','410')
detayı için: (git:
dev.mysql.com)
yukardaki cevabı görünce gelen edit: desc ile olmaz numerik artıp azalmıyor
0
Sadece 3 basamaklı sayılar ile mi çalışacaksın?
4 veya 5 basamaklı olursa hangi basamağa göre sıralayacaksın?
0
sadece 3 basamaklılar var ve sıralama değişmeyecek, 430,420,421,410 şeklinde olacak.
0
bi de hangi sql? mysql? mssql? sqlite? postgresql? oraclesql? ve server side kodlamada hangi dili kullanıyorsun bir de ?
0
kategori sayın belli ise yani sadece 430,420 ve 410 lular varsa
önce 430 lular
ikinci olarak 420liler
son olarak 410 lular artan sıraya göre union ile çekersin. durum daha karışıksa bence hepsini şek programın içinde yap eğer zaman kısıtın yoksa ve veri düşükse.
0
oracle, pl/sql için şöyle.
mysql workbench olsa onun içinde deneyecektim.
select substr(no,0,2), no no2 from tablo
order by substr(no,0,2) desc, no2 asc;
Not: Bu yanlızca 3 basamaklı sayılar için çalışır.
0
Mysql için şöyle oluyor.
SELECT left(alan_adi,2), alan_adi FROM tablo
order by left(alan_adi,2) desc, alan_adi asc;
0