ÇözümPark'a hoş geldiniz. Oturum Aç | Üye Ol
 
Ana Sayfa Makale Video Forum Resimler Dosyalar Etkinlik Hizmetlerimiz Biz Kimiz

IN( NULL ) görevini üstelenecek deyim

Son Mesajınız 05-26-2017, 22:07 elmira suleymanova tarafından gönderildi. 3 yanıt.
Mesajları Sırala: Önceki Sonraki
  •  05-18-2017, 10:05 513231

    IN( NULL ) görevini üstelenecek deyim

    Merhaba, Where cat = Like '%' + @category + '%' deyiminde olduğu gibi STRING değil de, uniqueidentifier veri üzerinde çalışıyorsak

    Where catID = IN ( Select ID from Ürünler Where ctgry = 'Süt Ürünleri' ) ifadesinde eğer süt ürünleri FİLTRESİ hiç kullanılmadıysa, NULL gelecek ise,

    Where catID = IN ( NULL ) ise yani, Where catID koşulunu nasıl deaktif hale getirebiliriz ?

    if else şeklinde iki sorgu yapmadan tek sorgu üzerinde bir çözümü var mıdır?

  •  05-20-2017, 15:40 513300 Cevap 513231

    Cevap : IN( NULL ) görevini üstelenecek deyim

    Merhaba

    Birden fazla koşul olduğundan, if else kullanmazsınız da, case-when-then kullanırsınız, tek sorguda zor gözüküyor.


    Forum Kuralları: http://www.cozumpark.com/forums/thread/650.aspx

    http://www.yavuzfilizlibay.com
  •  05-25-2017, 14:50 513587 Cevap 513231

    Cevap : IN( NULL ) görevini üstelenecek deyim

    elmira suleymanova:

    Merhaba, Where cat = Like '%' + @category + '%' deyiminde olduğu gibi STRING değil de, uniqueidentifier veri üzerinde çalışıyorsak

    Where catID = IN ( Select ID from Ürünler Where ctgry = 'Süt Ürünleri' ) ifadesinde eğer süt ürünleri FİLTRESİ hiç kullanılmadıysa, NULL gelecek ise,

    Where catID = IN ( NULL ) ise yani, Where catID koşulunu nasıl deaktif hale getirebiliriz ?

    if else şeklinde iki sorgu yapmadan tek sorgu üzerinde bir çözümü var mıdır?

     

     

    Merhabalar, alternatif olarak  ISNULL() ifadesini de kullanabilirsiniz.

     

    ISNULL Kullanımı ;

     

    ISNULL(@sorgu1,@sorgu2)  sorgu1 null ise sorgu2 yi getir.

     

    ISNULL( 'ilgili kolon veya sorgu sonucu' , 'null ise alacağı değer veya farklı bir sorgu sonucu' ) 

     

     


    Database Administrator
  •  05-26-2017, 22:07 513659 Cevap 513587

    Cevap : IN( NULL ) görevini üstelenecek deyim

    Merhaba,

    hepinize ayrı ayrı şükranlarımı borç bilirim.

    Sayın Yavuz Bey'in dediği şekilde, sanırım where ifadesinden sonraki case deyimini kapsıyor galiba, en azından ben öyle anladım;

    bir select case i var, bir de where case i, belki ilginç gelecek ama benim aradığım ikisinin ortası... şöyle ki;

     

    select * from ürünler case @değişken when not null then where = @değişken end gibi (ilginç değil mi :))

     

    Sayın Süleyman Bey ise, isnull(...., ....) ifadesini (benim istediğim şekilde kullanılamaz da)

     

    select * from ürünler isnull ( @değişken, where kategori = @değişken) şeklinde eklemek mümkün olsa idi, çok güzel olacaktı sonuç.

     

    aslında benim yapmak istediğim şu idi; hatalı bir söz dizimi ama, kendimi daha iyi anlatabilmek için başvuruyorum,

    select * from ürünler ( if @değişken is not null begin where kategori = @değişken end )

    gibi...

     

    böylece eğer @değişken de değer var ise

    select * from ürünler where kategori = @değişken

    eğer @değişken de değer yok ise

    select * from ürünler

    halini alacak.

    neden

    if @değişken is not null

    begin

    select * from ürünler where kategoriler = @değişken

    end

    else

    begin

    select * from ürünler

    end

    diyemiyorum;

    çünkü varsayım olarak bir @değişlen değil

    100 @değikeninizin olduğunu düşünün

    bu sayıda değişkene göre if else merdiveni kurmak binlerce satır kod demek.

     

     

    select * from ürünler

    ( eğer @değişken de değer var ise where kategori = @değişken koşulunu deklare et)

    + (eğer @değişken2 de değer var ise where boya rengi = @değişken2 koşulunu deklare et)

    + (eğer @değişken3 de değer var ise where cila = @değişken3 koşulunu deklare et)

    sorgu cümlesini dinamikleştirmeden anahtar kelimelerle (case when then in isnull) nasıl sağlarım aklımda onu canlandıramadım.

     

     

    böyle bir cümle nasıl kurulabilir anahtar kelimeler ile ?

     

    şükranlarımı sunarım.

RSS haberlerini XML olarak görüntüle