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

时间:2013-09-16 16:58:24

标签: sql sql-server tsql

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

SELECT SQRT(number) WHERE number IN (4,9,16,25)

当然会返回多行

2 个答案:

答案 0 :(得分:14)

您可以使用table value constructor

select sqrt(number) 
from (
    values (4),(9),(16),(25)
) as T(number)

或使用union all

select sqrt(number)
from (
    select 4 union all
    select 9 union all
    select 16 union all
    select 25
) as T(number)

<强> sql fiddle demo

答案 1 :(得分:0)

您可以创建派生表:

SELECT SQRT(number)
FROM (
    SELECT 4 AS number
    UNION ALL SELECT 9
    UNION ALL SELECT 16
    UNION ALL SELECT 25
) A