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
是的。我想要清晰的。好的。注意。这对你有用吗?如果是,你能接受这个答案吗?