| ikra | 15.08.2005 - 09:03:30 |
| 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... | |
| fahrettin | 15.08.2005 - 09:13:28 |
| 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
null+'deneme'=null
null*3=null gibi... Bu durumu bilirsek onlem almak kolay... String toplamada zannediyorum null olani bos string olarak kabul etsin istersiniz yani null + 'deneme'='deneme'
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: isnull(STRING_ALAN1,'')+isnull(STRING_ALAN2,'')
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.. | |
| ikra | 15.08.2005 - 10:57:57 |
| hocam tesekkür ederim. verdigin ip ucundan yola cikarak su sekilde cözdüm olayi... toplam üc alan...
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) diger arkadaslara yardimci olmasi umuduyla.. ikra... | |
| t-hex | 15.08.2005 - 11:45:43 |
| Merhaba,
Firebird de Coalesce fonksiyonunu kullanarak daha sade bir yolla bunu çözebilirsiniz COMPUTED BY COALESCE(strasse,'') || ' ' || COALESCE(platz,'') || ' ' || COALESCE(ort,''); İyi çalışmalar | |
| FAOsoft | 15.08.2005 - 11:56:01 |
COMPUTED BY (CASE WHEN (ADI IS NULL) THEN SOYADI
WHEN (SOYADI IS NULL) THEN ADI ELSE ADI||' '||SOYADI END) Buda benim yöntem | |
| ikra | 15.08.2005 - 14:39:53 |
| Allah cümlenizden razi olsun insaAllah... ilginiz icin cok tesekkür ediyorum...
selam ve dua ile... ikra... | |