यह थोड़ा बदसूरत है लेकिन क्योंकि NULL आपके लिए इसका एक विशेष अर्थ है, यह सबसे साफ तरीका है जो मैं सोच सकता हूं:
SELECT recordid, MIN(startdate),
CASE WHEN MAX(CASE WHEN enddate IS NULL THEN 1 ELSE 0 END) = 0
THEN MAX(enddate)
END
FROM tmp GROUP BY recordid
यानी, अगर किसी पंक्ति में NULL है , हम इसका उत्तर बनने के लिए बाध्य करना चाहते हैं। केवल तभी जब किसी पंक्ति में NULL न हो क्या हमें MIN वापस करना चाहिए (या MAX )।