I think COALESCE would be perfect for this:
COALESCE (Transact-SQL) - SQL Server | Microsoft Docs
WHERE COALESCE(ETA,BTA,ATA,ATD) > GetDate()
Example
DECLARE @DateNullCoalesce AS TABLE
(
AAA tinyint,
ETA Datetime NULL,
BTA Datetime NULL,
ATA Datetime NULL,
ATD Datetime NULL
)
INSERT INTO @DateNullCoalesce
SELECT
1 AS AAA,
GETDATE() AS ETA,
DATEADD(day,1, GETDATE()) AS BTA,
DATEADD(day,2, GETDATE()) AS ATA,
DATEADD(day,3, GETDATE()) AS ATD
UNION
SELECT
2 AS AAA,
NULL AS ETA,
DATEADD(day,1, GETDATE()) AS ATA,
DATEADD(day,2, GETDATE()) AS ATA,
DATEADD(day,3, GETDATE()) AS ATD
UNION
SELECT
3 AS AAA,
NULL AS ETA,
NULL AS BTA,
DATEADD(day,2, GETDATE()) AS ATA,
DATEADD(day,3, GETDATE()) AS ATD
UNION
SELECT
4 AS AAA,
NULL AS ETA,
NULL AS BTA,
NULL AS ATA,
DATEADD(day,3, GETDATE()) AS ATD
UNION
SELECT
5 AS AAA,
NULL AS ETA,
NULL AS BTA,
NULL AS ATA,
NULL AS ATD
SELECT *, COALESCE(ETA,BTA,ATA,ATD) AS Result
FROM @DateNullCoalesce
WHERE COALESCE(ETA,BTA,ATA,ATD) > GETDATE()
ORDER BY AAA