Sorgulamada Boşluklardan Nasıl Kurtulacağız

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Master43
Üye
Mesajlar: 73
Kayıt: 17 Ara 2004 12:05

Sorgulamada Boşluklardan Nasıl Kurtulacağız

Mesaj gönderen Master43 »

Arkadaşlar interbasedeki CHAR tipindeki alanların sonunda oluşan boşluklar malumünüz. Bu alan için yazılacak filtre ifadesinde boşluklardan dolayı hep sorgu sonucu hep boş çıkıyo bu boşluklardan nasıl kurtulabilirim bi türlü çözemedim (tabiki makul olanını yoksa alanın size'ından aranılan ifadenin length'ini çıkarıp onu tekrar aranan ifadeye boşluk olarak eklemek gibi bi alternatif var tabi ama pek makul gelmiyor :? ),

Kod: Tümünü seç

SELECT TRIM(ALAN ...) AS YENI_ALAN FROM TABLO
WHERE YENI_ALAN='my value';

Kod: Tümünü seç

SELECT SUBSTRING(BOTH ALAN ...) AS YENI_ALAN FROM TABLO
WHERE YENI_ALAN='my value';

Kod: Tümünü seç

SELECT ALAN FROM TABLO
WHERE TRIM(ALAN)='my value';
gibi seçenekleri denedim ama maalesef,

yorumlarınız için teşekkür ederim.
En son Master43 tarafından 15 Nis 2005 12:53 tarihinde düzenlendi, toplamda 3 kere düzenlendi.
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

Öncelikle CHAR yerine VARCHAR kullanabilirsin. Ama illa ki CHAR kullanman gerekiyorsa trim komutunu yanlış yerde yani alan adında kullanıyorsun.

filitreleyeceğin string ifade de = yerine like komutu kullan ve stringin sonuna % koy.

Kod: Tümünü seç

where ALAN_ADI like 'xxxx' + '%'


gibi ...

Yani ALİ VELİ% ALİ VELİ ile başlayanlerı sonrası ne olursa olsun filitreler
Master43
Üye
Mesajlar: 73
Kayıt: 17 Ara 2004 12:05

Mesaj gönderen Master43 »

@Query cevabın için teşekkürler ama sorgularım sistem tablolarından olacağı için mecburen CHAR,
like seçeneğine gelince o da mümkün değil çünkü field yaklaşık değerler içeriyo yani sorgu sonucundan istemediğim kayıtların gelmesi sözkonusu kısacası boşlukları atacak yada field'ın sadece atıyorum ilk 10 karakterini dikkate alarak filtrele gibi bi sql komutu yokmudur !
En son Master43 tarafından 15 Nis 2005 12:32 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

O zaman şöyle bişi yap

CHAR alanının uzunluğu belli sende filitreleyeceğin stringin sonuna boşluk ekle. yani

senin alanının boyutu 10 ise ve stringin uzuluğunu 6 ysa aradaki fark kadar (4) boşluk ekle
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

bi de şuna bak istersen belki işine yarar :roll:

viewtopic.php?t=1549&highlight=sql+f%FDltreleme
Master43
Üye
Mesajlar: 73
Kayıt: 17 Ara 2004 12:05

Mesaj gönderen Master43 »

Kardeş gece gece senide uğraştırmıyoruzdur inşallah,

verdiğin linki soruyu yazmadan önce görmüştüm yinede sağol,

zaten olmadı boşluk ekleyerek filtereleyeceğiz napalım :?
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

İşin görüldüyse ne mutlu :)
Master43
Üye
Mesajlar: 73
Kayıt: 17 Ara 2004 12:05

Mesaj gönderen Master43 »

Sadece daha kolay bi yolu vardır diye düşünmüştüm, bi boşluk atmak için on dereden su getirmek olacak
Cevapla