2010-05-20 19 views
6

Bir hazırda Kriterleri sorgusu olarak aşağıdaki sorguyu yazmak istiyorum:Hazırda Kriterler sorgusunda Coalesce karşılığı mı?

select 
     to_char(nvl(ol.updated_datetime, ol.created_datetime), 'dd/mm/yyyy'), sum(discount_price) 
    from order_line ol 
    where nvl(ol.updated_datetime, ol.created_datetime) between to_date('05-may-10') and to_date('30-may-10') 
    group by to_char(nvl(ol.updated_datetime, ol.created_datetime), 'dd/mm/yyyy') 

Ama Kriterleri sorgu eşdeğer NVL işlevini dönüştürmek için nasıl emin değilim. HQL'nin bir birleşme ifadesi olduğunu anlıyorum ama bunu bir Kriterler sorgusu olarak yazmak istiyorum.

Herhangi bir tavsiye gerçekten takdir edilecektir!

Düzenleme: Herkes, benim çözümümün de ötesinde olan bir HQL sorgusu sağlayabilirse.

cevap

1

nvl() yerine, coalesce() kullanabilmeniz gerekir. Bu işlev bir SQL standardıdır ve umarım çalışmalıdır.

Bunu sorduğunuz sırada, bu işlevi kullanamayacağınızın farkındayım. nHabernate Destek bileti [NH-2711], COALESCE işlevinin dahil edilmesini kapsıyordu.

İlgili konular