在SQL中处理多个硬编码值的最简单方法?

dra*_*aca 4 sql t-sql sql-server

我将如何在SQL Server中执行此操作?(我知道它不会按照书面形式运行,但它比我能解释的更能说明问题)

SELECT SQRT(number) WHERE number IN (4,9,16,25)
Run Code Online (Sandbox Code Playgroud)

它当然会返回多行

Rom*_*kar 14

你可以使用表值构造函数

select sqrt(number) 
from (
    values (4),(9),(16),(25)
) as T(number)
Run Code Online (Sandbox Code Playgroud)

或者使用union all

select sqrt(number)
from (
    select 4 union all
    select 9 union all
    select 16 union all
    select 25
) as T(number)
Run Code Online (Sandbox Code Playgroud)

sql fiddle demo