如果我 select 只在第一行有四个 select ,它在 sql 中有多快

how fast ist it in sql if I would select only the first row with four selects

我对外观与 Union Select Only One Row 一样有疑问 但与小不同。我有四个 select 与联合声明相结合。

select top 1 value from (
    select 1 as id, value from resource where rkey = 'a'
    union
    select 2 as id, value from resource where rkey = 'b'
    union
    select 3 as id, value from resource where rkey = 'c'
    union
    select 4 as id, value from resource where rkey = 'd'
) as x
order by id

每个 select 语句只返回一行或零行。我已经会使用所有 select 的第一个结果。因此,如果第一个 select returns 行,则应忽略其他 select 行。如果第二个 select 返回该行(第一个 select 不返回任何行),那么其他的应该被忽略。等...

我的问题是:这个组合有多快,或者有更快的解决方案吗?

或跳过 UNION:

select top 1 value
from resource 
where rkey in ('a','b','c','d')
order by rkey

如果 key 被索引,您的方法(但使用 UNION ALL)可能是最好的。

否则试试:

select top 1 value 
from resource 
where rkey in ('a', 'b', 'c', 'd')
order by 
  case rkey 
    when 'a' then 1
    when 'b' then 2
    when 'c' then 3
    when 'd' then 4
  end