sql server:group by中的case语句

sql server:group by中的case语句,sql,sql-server,group-by,case,Sql,Sql Server,Group By,Case,我有这个疑问 Select a."AreaBlkType",Case a."AreaBlkType" when 3 then 'Others' else ( case a."CropType" when 1 then 'Oil Palm' when 2 then 'Rubber' else 'Other Crop' end ) end [Crop] from Table1 a group

我有这个疑问

   Select a."AreaBlkType",Case a."AreaBlkType"
when 3 then 'Others'
else ( case a."CropType"
        when 1 then 'Oil Palm'
        when 2 then 'Rubber'
        else 'Other Crop'
        end
         )
end [Crop] 
    from Table1 a 
    group by 
    case a."AreaBlkType"
when 3 then 'Others'
else ( case a."CropType"
        when '1' then 'Oil Palm'
        when '2' then 'Rubber'
        when '3' then 'Other Crop'
        end )
end, 
a."AreaBlkType" 
但是我有一个错误CropType'在select列表中无效,因为它未包含在聚合函数或GROUP BY子句中


我的sql正确吗?

为什么需要分组依据?您是否需要重复的记录,而只需要一条不同的记录

在任何一种情况下,您的GROUP BY都必须包含相同的case语句,因此:

Select
   Case a."AreaBlkType"
      when 3 then 'Others'
      else
         case a."CropType"
            when 1 then 'Oil Palm'
            when 2 then 'Rubber'
            else 'Other Crop'
         end
   end [Crop] 
 from Table1 a 
group by 
   Case a."AreaBlkType"
      when 3 then 'Others'
      else
         case a."CropType"
            when 1 then 'Oil Palm'
            when 2 then 'Rubber'
            else 'Other Crop'
         end
   end

是的。我想要清晰的。好的。注意。这对你有用吗?如果是,你能接受这个答案吗?