2010-05-20 12 views
6

मैं एक हाइबरनेट मानदंड क्वेरी के रूप में निम्न क्वेरी लिखना चाहते हैं:हाइबरनेट मानदंड क्वेरी में समकक्ष कोलेस?

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') 

लेकिन मुझे यकीन है कि कैसे एक मानदंड क्वेरी बराबर करने के लिए NVL समारोह कन्वर्ट करने के लिए नहीं कर रहा हूँ। मुझे एहसास है कि एचक्यूएल में एक सहभागिता अभिव्यक्ति है लेकिन मैं इसे मानदंड क्वेरी के रूप में लिखना चाहता हूं।

कोई सलाह वास्तव में सराहना की जाएगी!

संपादित करें: अगर कोई एचक्यूएल क्वेरी प्रदान कर सकता है जो उपरोक्त करता है तो मेरा समाधान भी हो सकता है।

उत्तर

1

nvl() की जगह, आप coalesce() का उपयोग करने में सक्षम होना चाहिए। यह फ़ंक्शन एक SQL मानक है और उम्मीद है कि काम करना चाहिए।

उस समय जब आपने यह पूछा था, मुझे एहसास हुआ कि हो सकता है कि आपको यह फ़ंक्शन उपलब्ध न हो। nHibernate समर्थन टिकट [NH-2711] को COALESCE फ़ंक्शन को शामिल करने के लिए कवर किया गया।

संबंधित मुद्दे