我有这个问题。
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'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句
中我的sql是否正确?
答案 0 :(得分:3)
为什么需要GROUP BY?您是否期望重复记录并且只想要不同的记录?
在任何一种情况下,您的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