将 SQL 中的值列表转换为 CTE 或临时表

Ano*_*per 4 sql sql-server

如何将 (value1, value2, value3, ...., value500) 等值列表转换为临时表或 cte?

一种方法是这样做:

WITH huge_list_cte AS (
   Select value1
   UNION
   Select value2 ...
)
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

Gor*_*off 5

使用values

WITH huge_list_cte AS (
      SELECT v
      FROM (VALUES (value1), (value2), . . . ) v(v)
     )
. . .
Run Code Online (Sandbox Code Playgroud)

  • 仅当值列表中的条目数 <= 1000 时才有效。 (2认同)