I would like to do something like this:
    select * from challenger 
        where sqrt( square(Launch_temperature-70) )=
   ( select min( sqrt( square(Launch_temperature-70) ) ) 
        from challenger)
But if I use other two ways below, SQL Server 2017 gives me this kind of error message:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
with cte(value) 
as
(
    select sqrt(square(Launch_temperature- 70)) as value 
    from challenger
)
select  * from challenger 
order by 
(select value from cte) ASC;
or
select  * from challenger 
    order by 
(select sqrt(square(Launch_temperature-70)) from challenger) ASC;
Why is that? Anyway to fix to this?
Edit: I have found a solution! One way:
select top 1 * from challenger 
order by 
abs(Launch_temperature-70) ASC
The other way:
with cte(value) 
as
(
    select sqrt(square(Launch_temperature- 70)) as value 
    from challenger
)
select  top 1 * from challenger, cte 
order by 
(value) ASC;
 
    