Agak jelek tapi karena NULL
s memiliki arti khusus bagi Anda, ini adalah cara terbersih yang dapat saya pikirkan untuk melakukannya:
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
Artinya, jika ada baris yang memiliki NULL
, kami ingin memaksa itu menjadi jawabannya. Hanya jika tidak ada baris yang berisi NULL
haruskah kita mengembalikan MIN
(atau MAX
).