Merhaba arkadaşlar.Firebird veritabanını kullanıyorum.computed by bir field tanımlayacam.abone tablosundan EVSAHIPAD ve KIRACIAD fieldlarını duruma göre kullanacam.eğerki Kiracıad boş veya null sa evsahibiad yeni fieldin değeri olacak.ben bir şeyler salladım ama olmadı.aşağıdaki gibi bir kullanım varmı firebird de.
SELECT COALESCE (kiraciad, evsahibiad, 'TANIMSIZ')
FROM abonesu
WHERE sicilid = faturasu.sicilid
bu fonksiyon oldukça kullanışlı ve tam da bu iş için.
Kolay gelsin.
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)
SELECT COALESCE (kiraciad, evsahibiad, 'TANIMSIZ') as adi
FROM abonesu
WHERE sicilid = faturasu.sicilid
şeklinde alana bir isim vererek dener misiniz ? CASE le birlikte if ve nullif de kullanabilirsiniz ama bu işlem için ideal olanı bu verdiğim fonksiyondur... Nullif ise şu şekilde;
SELECT NULLIF (NULLIF (kiraciad, evsahibiad), 'TANIMSIZ') AS adi
FROM abonesu
WHERE sicilid = faturasu.sicilid
İçteki null if le eğer kiraciad null sa evsahibiad kullanılır. Dıştakinde evsahibiad da null sa 'TANIMSIZ' kullanılsın demektir. Dikkat edilecek husus NULLIF in tüm db lerde desteklenmediğidir. Fakat diğer db için benzer şeyler vardır. Misal oracle için NVL gibi. COALESCE ise ORACLE, FireBird ve MS SQL Server (tam emin değilim) da destekleniyor.
Doğan Zorlu, İzmir
------------------------
"Bu Kitap'ı sana yalnız şunun için indirdik: Hakkında ayrılığa düştükleri şeyi onlara iyice açıklayasın ve Kitap, iman eden bir topluluk için kılavuz ve rahmet olsun." (NAHL 64)