PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

आदेश के साथ अलग हाइबरनेट करें

ऐसे कॉलम द्वारा ऑर्डर करने का कोई मतलब नहीं है जो चयनित distinct . का हिस्सा नहीं है कॉलम।

चूंकि आप किसी संग्रह में शामिल नहीं हो रहे हैं, वैसे भी आपके रिकॉर्ड अलग होंगे (कम से कम PK अलग होगा), आप बस विशिष्ट को छोड़ सकते हैं:

select distinct city 
from City city 
  where city.id is not null 
    and upper(city.name) != upper('Unknown')  
    and city.state.id =:stateId 
order by upper(trim(city.name))

सामान्य तौर पर, जब परिणाम सेट में वास्तव में डुप्लिकेट होते हैं और आप उन्हें समाप्त करना चाहते हैं, तो आप इसे एक सबक्वेरी के साथ प्राप्त कर सकते हैं:

select city
from City city
  where city.id in (select c.id from City c join c.someCollection sc where ...)
order by upper(trim(city.name))

इस दृष्टिकोण का अन्य लाभ यह है कि यह संभवतः बेहतर प्रदर्शन-वार है, जैसा कि distinct . है आईएनजी पंक्तियाँ आमतौर पर डेटाबेस में एक महंगा ऑपरेशन है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेस्क्ल क्वेरी पर बड़ा परिणामसेट

  2. कॉलम एएससी द्वारा क्रमबद्ध करें, लेकिन पहले नल मान?

  3. PostgreSQL pgAdmin में एक पंक्ति कैसे सम्मिलित करें?

  4. कैसे Width_Bucket () PostgreSQL में काम करता है

  5. INSERT ... ON CONFLICT ... के साथ सभी कॉलम कैसे अपडेट करें?