Bir sorgu var, bunda parametreye dayanan birden fazla koşul var.
select a,b,c,d from xyz where
case p='Closed' then (q-r)=0
case p='Pending' then (q - isnull(r,0) )>0
case P='All' then all records to be display
Satır durumunun yanında Yanlış Sözdizimi veriyor
Lütfen bana değişecek başka bir çözüm öner 'nerede şart' parametre değerine bağlı olarak,
sql verilen beri, 'nerede' koşul p parametresine bağlıdır.
Belirtilen sözdiziminde görebilirsiniz, eğer parametre değeri değişirse, durum da değişmiş olur.
İlk durumda eğer p = 'Kapalı' o zaman select ... where q-isnull(r,0)=0
p = 'Beklemede' ise select ... where (q - isnull(r,0) )>0
İlk durumda karşılaştırarak 'eşittir' koşulu & amp; sonraki örnekte 'dan büyük' sıfır değer
üçüncü durumda olduğu gibi tüm kayıtları görüntülemek istiyorum.
Burada sorun şudur: 'case' yapısı yalnızca ifadeyle değil bir değerle döner.