यह थोड़ा बदसूरत है लेकिन क्योंकि 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
)।