2016-04-03 17 views
0

bu komut dosyası düzeltirim ürettiği hiçbir manager_id veya komisyon var ise bunun manager_id üreten bir komisyon yoksa bunu üreten bir komisyon varsa olduğunu -1nasıl sonuçlar elde etmek mümkün istiyorum

NLV2(NVL2(NVL2))) yapmam gerektiğini düşünüyorum ama emin değilim. Bu benim ürettiğim koddur, eminim hatalıyım.

SELECT first, 
     last_name, 
     CASE commission_pct 
      WHEN commission_pct IS NOT NULL THEN commision_pct 
      WHEN commission_pct IS NULL THEN manager_id 
      WHEN commission_pct AND manager_id IS NULL THEN -1 
     END AS "Which Function???" 
FROM employees 
+0

deli ne mantıktır senin "commission_pct" soruşturma bir yönetici kimliği olup olmadığını belirlemek için kullanarak uygulama veya komisyon yüzdesi? Buradaki tavsiyem * hem * dönmek. –

+0

@ Mo920192: Evet, bu sorgu yanlış. Manager_id' null olup olmadığına bakılmaksızın, 'pst_post' null olduğunda' manager_id' döndürürsünüz. Olmak zorunda olurdu ... ... DEVAM EDİLİR NULL VE manager_id NULL THEN manager_id ELSE -1 END'. –

cevap

3

İlk boş olmayan bir değer döndürür COALESCE arıyoruz:

select 
    first_name, 
    last_name, 
    coalesce(commission_pct, manager_id, -1) 
from employees; 
İlgili konular