String Alanda Sıralama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Firarist
Üye
Mesajlar: 129
Kayıt: 13 Eki 2003 06:41
Konum: Antalya
İletişim:

String Alanda Sıralama

Mesaj gönderen Firarist »

Arkadaşlar. String alanda integer alanmış gibi A_Z sıralama yaptırabilir miyim. Bu alanda rakam var ancak bazı rakamlar / işareti içeriyor. Ya da integer alana farklı karakterler girebilir miyim. (İsteğe bağlı) Ado ile veritabanına bağlanıyorum. MsAccess

Umarım soruyu doğru sormuşumdur. Başarılar
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam string alanı A dan Z ye sıralıyabilrisin ya tablodan index oluşturursun yada Query ile sıralama yaoabilirsin.
select *from tablo
where kod=:kod
order by adsoyad
gibi bir ifade de mesela adsoyad alanındaki verileri A dan Z ye sıralayacatır.Kolay gelsin.
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Kod: Tümünü seç

...SQL.Add('Select* From TabloAdi order by TablodakiAlan');
Firarist
Üye
Mesajlar: 129
Kayıt: 13 Eki 2003 06:41
Konum: Antalya
İletişim:

Mesaj gönderen Firarist »

Stringleri 1.2.3....9.10... şeklinde sıralamak istiyorum. OrderBy ile sıralamada 1-10-11-12...2-20-21 şeklinde sıralıyor. Yani integer alanmış gibi sıralamak istiyorum
İlginize şimdiden teşşekkürler
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Araya birde şart koyup deniyebilirmisin...

Mesela where (Alanadi is not null) şeklinde...
Firarist
Üye
Mesajlar: 129
Kayıt: 13 Eki 2003 06:41
Konum: Antalya
İletişim:

Mesaj gönderen Firarist »

Bu kitap demirbaş noları için gerekli. Örneğin aynı kitaptan 10 tane varsa bunların d.baş nolarını 20 - 20/1 - 20/2 - 20/3 ... şeklinde girip integer alan gibi sıralatmak istiyorum.
Nasıl bir şart koyabilirim acaba. Yardımcı olursanız sevinim. Başarılar
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Merhaba

Kod: Tümünü seç

...Add('Select* from Tabloadin Where (AlanAdi is not null) order by Kitapno,Kitapserino');
Buna benzer sonuçlara order :ara arama yaparak ulaşabilirsin... :wink:

Kolay gelsin...
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

1-10-11-12...2-20-21 veriler bu sekilde ise ve alan tipi string ise siranin boyle olmasi dogal.
akla gelen ilk yontem verilerin soluna string boylarinin esitligini koruyacak kadar sifur koymak. o zaman sira soyle olur.
0001-0002-0003-0004 .... 0010-0011-0012 ... 0020-0021.... 0100 ...
o kadar sifir gorunmesi hos olmayacaksa en azindan ve itabaninda boyle durup ekranda goste irken soldaki sifirlari temizleyebilirsiniz. Ya da veritabaninda integer bir alanda tutabilirsiniz. / isareti varsa oncesindeki ve sonrasindaki degeri farkli iki integer alanda tutabilirsiniz.
En son fahrettin tarafından 12 Eyl 2005 11:49 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

eger veritabaniniz bir takim string fonksiyonlari destekliyorsa aklima yapiyi degistirmeden son bi alternatif cozum geldi:

Kod: Tümünü seç

Select KOD, SIRALAMA_ALANI=substr('000000',1,6-length(KOD))+KOD   
from TABLO 
order by SIRALAMA_ALANI   
Sadece siralama amacli Select icine yeni bir alan ekleyip onun da onune toplam string boyunu 6 haneye sabitleyecek bir ekleme ile is cozulebilir. geriye tek kalan bu iki fonksiyon veya ayni isi yapan farkli fonksiyonlar veritabaninizda var mi?
* http://www.fahrettin.org Manzara Fotoğraflarım... :)
* http://delphiturkiye.gunduz.info Seminerler... ;)
* http://www.hakmar.com.tr Kalite bir haktır... 8)
zero_g
Üye
Mesajlar: 56
Kayıt: 11 Şub 2004 11:52

Mesaj gönderen zero_g »

alpha sayısal alana numeric harici veri girdirme. stored procedure yap ve bu alanı integer bir değişkene yükle sonra stored procedure yi sorgularken integer alana göre order by yaz olacaktır. ama integere cevirebilmen için alandaki verilerin kesinlikle numeric olmalı
Firarist
Üye
Mesajlar: 129
Kayıt: 13 Eki 2003 06:41
Konum: Antalya
İletişim:

Mesaj gönderen Firarist »

Hocam.
Veritabanı olarak access kullanıyorum. Bağlantıyı da adoquery ile sağlıyorum. Söylediklerinizi uygulamaya çalışacağım. İlginize sonsuz teşekkürler. Başarılar
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Bildiğim kadarıyla Access yukarıda verilen sql cümlelerini desteklemiyor..En mantıklı çözüm @fahrettin abinin belirttiği gibi baş tarafına sıfır koymak..Bu sanal da olabilir tabii.

Kolay gelsin.
Cevapla