computed by (alanlardan biri bos ise)
ikra15.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...
 
fahrettin15.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..
 
ikra15.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-hex15.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
 
FAOsoft15.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
 
ikra15.08.2005 - 14:39:53
Allah cümlenizden razi olsun insaAllah... ilginiz icin cok tesekkür ediyorum...

selam ve dua ile...
ikra...
 
NOT : Bu sayfa google'un siteyi indekslemesi içindir. www.delphiturkiye.com/forum/ adresini kullanınız!
1998-2006 www.delphiturkiye.com