hocalarim forumda aradim fakat bana uygun bir sey bulamadim.
firebird 1.5 kullaniyorum.
computed by ile iki string alani birlestiriyorum. eger alanlarin ikiside bos degil ise islem basari ile sonuclaniyor fakat alanlardan bir tanesi bos ise deger null string olarak isleniyor...
bu durumda nasil bir yöntem kullanmaliyim?
selam ve dua ile...
ikra...
computed by (alanlardan biri bos ise)
computed by (alanlardan biri bos ise)
kıdemsiz üye
bu normal cunku gerek matematiksel islemler olsun ve de gerekse string islemelr olsun bu islemlere giren degerlerden biri null ise sonuc da null olur.... yani
gibi...
Bu durumu bilirsek onlem almak kolay... String toplamada zannediyorum null olani bos string olarak kabul etsin istersiniz yani
bunun gibi...
Bu durumda ya ilgili alanlara is null kontrolu yapacaksiniz ya da Sybase isnull diye bir fonksiyon var zannediyorum firebird de de artik olmasi laizm yoksa bile udf ile geliyor.... O fonksiyon ile isinizi kolayca gorebilirsiniz... Sybase dekinde syntax soyle:
Boylece null olan degerler yerine bos bir string isleme sokulmus olur... Ayrica bu tur hesaplamalara giren alanlar kullanıcı tarafından doldurulması da gerekiyorsa bu alanları not null olarak tanımlamak da kısmi bir onlem olabilir..
Kod: Tümünü seç
null+'deneme'=null
null*3=null
Bu durumu bilirsek onlem almak kolay... String toplamada zannediyorum null olani bos string olarak kabul etsin istersiniz yani
Kod: Tümünü seç
null + 'deneme'='deneme'
Bu durumda ya ilgili alanlara is null kontrolu yapacaksiniz ya da Sybase isnull diye bir fonksiyon var zannediyorum firebird de de artik olmasi laizm yoksa bile udf ile geliyor.... O fonksiyon ile isinizi kolayca gorebilirsiniz... Sybase dekinde syntax soyle:
Kod: Tümünü seç
isnull(STRING_ALAN1,'')+isnull(STRING_ALAN2,'')
* http://www.fahrettin.org Manzara Fotoğraflarım... 
* http://delphiturkiye.gunduz.info Seminerler...
* http://www.hakmar.com.tr Kalite bir haktır...

* http://delphiturkiye.gunduz.info Seminerler...

* http://www.hakmar.com.tr Kalite bir haktır...

hocam tesekkür ederim. verdigin ip ucundan yola cikarak su sekilde cözdüm olayi... toplam üc alan...
diger arkadaslara yardimci olmasi umuduyla..
ikra...
Kod: Tümünü seç
COMPUTED BY (case when (strasse) is null and (platz) is null then
ort
when (strasse) is null and (ort) is null then
platz
when (strasse) is null and (platz) is not null and (ort) is not null then
platz||' '||ort
when (strasse) is not null and (platz) is null and (ort) is null then
strasse
when (strasse) is not null and (platz) is null and (ort) is not null then
strasse||' '||ort
when (strasse) is not null and (platz) is not null and (ort) is null then
strasse||' '||platz
when (strasse) is not null and (platz) is not null and (ort) is not null then
strasse||' '||platz||' '||ort end)
ikra...
kıdemsiz üye
Merhaba,
Firebird de Coalesce fonksiyonunu kullanarak daha sade bir yolla bunu çözebilirsiniz
İyi çalışmalar
Firebird de Coalesce fonksiyonunu kullanarak daha sade bir yolla bunu çözebilirsiniz
Kod: Tümünü seç
COMPUTED BY COALESCE(strasse,'') || ' ' || COALESCE(platz,'') || ' ' || COALESCE(ort,'');
Kod: Tümünü seç
COMPUTED BY (CASE WHEN (ADI IS NULL) THEN SOYADI
WHEN (SOYADI IS NULL) THEN ADI
ELSE ADI||' '||SOYADI END)