我正在尝试按字母顺序对表进行排序,最后是空值,但是遇到了问题。
下面的代码产生以下错误:
如果指定了SELECT DISTINCT,则ORDER BY项目必须出现在选择列表中。
select distinct
'item' = othertab..item,
'stockedFor' = tab..stocked_for
+ ', ' + tab..stockedFor2
+ ', '+ tab..stockedFor3
from tab
order by case when stockedFor is null then 1 else 0 end, stockedFor
如何按字母顺序返回stockedFor
,最后返回空值?
答案 0 :(得分:0)
只需将其包装在另一个select语句中即可:
select stockedFor
from (
select distinct
'stockedFor' = tab..stocked_for
+ ', ' + tab..stockedFor2
+ ', '+ tab..stockedFor3
from tab
) x
order by case when stockedFor is null then 1 else 0 end, stockedFor
答案 1 :(得分:0)
由于要删除重复项,因此一种解决方法是使用GROUP BY
而不是DISTINCT
删除重复项。问题已更改,但是如果将所有列都放在SELECT
的{{1}}中,该方法仍然适用。
例如:
GROUP BY