使用select语句作为列之一

l--*_*''' -1 sql t-sql sql-server sql-server-2008

我有一个问题:

select 
      index_imsid
    , SUM(weighted_value) sumWeightedValue
    , (
        select 
              top 1 percentof
            , [Plan_Name_OR_Payment_Type] 
        from [v_PlanPerProvider1] 
        where [PLAN_RANK]=1
      ) plan1
from [v_PlanPerProvider1]
where plan_rank between 1 and 10
group by index_imsid
order by 1
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

消息116,级别16,状态1,行3
当未使用EXISTS引入子查询时,只能在选择列表中指定一个表达式.

能帮我理解为什么会收到这个错误吗?

它似乎不喜欢select语句作为列之一?

Tod*_* Li 6

它不喜欢您在子查询中选择两列.您一次只能选择一列.

  select index_imsid, SUM(weighted_value) sumWeightedValue,
    (select top 1 percentof from [v_PlanPerProvider1] where [PLAN_RANK]=1) percentof
    (select top 1 [Plan_Name_OR_Payment_Type] from [v_PlanPerProvider1] where [PLAN_RANK]=1) Plan_Name_OR_Payment_Type
  from [v_PlanPerProvider1]
  where plan_rank between 1 and 10
  group by index_imsid
  order by 1
Run Code Online (Sandbox Code Playgroud)