Oracle dünyasında yepyeni olduğum için bu bir softbol olabilir. Bir SSRS raporuyla çalışırken, bir dizi durumdan görüşe geçiyorum. Büküm, kullanıcıların "[Seçim Yok]" olarak adlandırılan durum listesinden bir seçim yapabilmeleridir ... (bu bölüm bunu yapmıyordu ve bu şekilde şeyleri uygulamakta kaldım)CASE deyimiyle koşullu WHERE yan tümcesi Oracle'da
İsterlerse Seçim Yok seçeneği, sonra tüm durumları varsayılan olarak döndürmek istiyorum, aksi halde virgülle ayrılmış listesindeki durumların listesini döndürürüm.
Bu gerçekten kolay olmalı gibi görünüyor ama sıkışıp kaldım. Şimdiye kadar sahip olduğum kod (sadece çalışmak için bir örnek almaya çalışıyorum) ama gözlerimin sonunda gitmeye çalışıyorum.
Lütfen bu konuda bana biraz yön verebilir misiniz? Alternatif
where (case when (:stateCode = '') then (1)
when (:stateCode != '') and (vw.state_cd in (:stateCode)) then 1
else 0)
end) = 1;
tamamen case
kaldırmak toplam:
begin :stateCode:='MO,FL,TX'; --:stateCode:='[ No Selection ]'; end; / select count(*) as StateCount, :stateCode as SelectedVal from hcp_state vw where (case when (:stateCode = '') then (1) when (:stateCode != '') then (vw.state_cd in (:stateCode)) (else 0) end) ;
'(başka 0) 'parantez içermemelidir . – zygimantus
@zygimantus. . . Teşekkür ederim. Düzenleme geçmişinin olmadığı gerçekten merak ediyor, çünkü kodun biçimi benim normal girinti tarzımdan oldukça farklıydı. Şimdi hepsi tamir edildi. –