• 18-06-2020, 15:47:21
    #1
    c# projem için bir sql sorgum var

    select ile başlayıp içerisinde 6 tane inner join olan. Bu sorgunun sonuçlarında bazı tablolardaki değerler NULL olduğu için ona bağlı diğer değerleri de çekmiyor. Sadece tamamı girilen değerleri çekiyor. Benim null olan değerleri de getirmem lazım hatta mümkünse bu Null değerleri "Veri Yok" gibi bir değerle getirmem lazım. Biraz araştırdım
    ISNULL(tabloadı, 'değer') as TabloAdı
    şeklinde bir kullanım var fakat bunu uyguladığımda yine boş geliyor. Var mıdır bir çözümü?
  • 18-06-2020, 15:49:59
    #2
    where isnull(kolon_adi,'') != ''
    Tablo adı değildir o. Tablo adı olsa duramaz.
  • 18-06-2020, 15:55:14
    #3
    voyager adlı üyeden alıntı: mesajı görüntüle
    where isnull(kolon_adi,'') != ''
    Tablo adı değildir o. Tablo adı olsa duramaz.
    evet kolonadı yalnış yazmışım. Peki hocam bu isnull fonksiyonu sadece where ile mi kullanılmak zorunda? yani şöyle yapamıyor muyum

    select isnull(adi, 'veri yok'), soyadi, isnull(sehir, 'veri yok') from kullanicilar where id=1
  • 18-06-2020, 16:14:22
    #4
    Huskar adlı üyeden alıntı: mesajı görüntüle
    evet kolonadı yalnış yazmışım. Peki hocam bu isnull fonksiyonu sadece where ile mi kullanılmak zorunda? yani şöyle yapamıyor muyum

    select isnull(adi, 'veri yok'), soyadi, isnull(sehir, 'veri yok') from kullanicilar where id=1
    Kullanırsın. Fakat o yazdığın şekilde değil. Amacını anladım ben senin. Sen boş olan verilere null veya boşluk yerine farklı bir şey yazmak istiyorsun.
    select
    case ad when isnull then 'Null olarak geliyor' when not isnull then ad end as blabla
    ,*from kullanicilar where id=1
  • 18-06-2020, 16:48:35
    #5
    voyager adlı üyeden alıntı: mesajı görüntüle
    Kullanırsın. Fakat o yazdığın şekilde değil. Amacını anladım ben senin. Sen boş olan verilere null veya boşluk yerine farklı bir şey yazmak istiyorsun.
    select
    case ad when isnull then 'Null olarak geliyor' when not isnull then ad end as blabla
    ,*from kullanicilar where id=1

    isnull un altını kırmızı ile çizip "invalid column name 'isnull'." yazıyor.

    select case
    Puan when isnull then '0' when not isnull then Puan end Puan from puanlar
    yazdım
  • 18-06-2020, 16:53:36
    #6
    Huskar adlı üyeden alıntı: mesajı görüntüle
    isnull un altını kırmızı ile çizip "invalid column name 'isnull'." yazıyor.

    select case
    Puan when isnull then '0' when not isnull then Puan end Puan from puanlar
    yazdım
    kardeş ezbere yazıyorum. syntaxlara bakmadım. senin kod bilgin sıfır anlaşılan.
    is null olacak o. ben mantıken anla diye yazdım da sana direk kodu vermek gerekliymiş
  • 19-06-2020, 07:18:16
    #7
    coalesce(sutun_adi_1, sutun_adi_2, ...... sutun_adi_n, 'Veri Yok'
    
    serideki ilk null olmayan veriyi donderir 
    case yazmak yerine daha temiz ve dogru olur
  • 02-07-2020, 16:16:07
    #8
    LEFT JOIN kullansan diğerinde karşılığı olmayan veriyi de getirmiş olursun.