4
我需要按某种方式列出某个字段,但对其进行了不同的排序。这是查询。任何方式在这个?如果指定了SELECT DISTINCT,则ORDER BY项目必须出现在选择列表中错误
SELECT DISTINCT tsgroup
FROM master
ORDER BY RIGHT(RTRIM(tsgroup), 3),
LEFT(rtrim(tsgroup), 3)
我需要按某种方式列出某个字段,但对其进行了不同的排序。这是查询。任何方式在这个?如果指定了SELECT DISTINCT,则ORDER BY项目必须出现在选择列表中错误
SELECT DISTINCT tsgroup
FROM master
ORDER BY RIGHT(RTRIM(tsgroup), 3),
LEFT(rtrim(tsgroup), 3)
您可以使用GROUP BY
代替
SELECT tsgroup
FROM master
GROUP BY tsgroup
ORDER BY RIGHT(RTRIM(tsgroup), 3),
LEFT(RTRIM(tsgroup), 3)
像一个黑客:
select grp from (
select distinct tsgroup as grp
from master
)
order by RIGHT(RTRIM(grp), 3) , left(rtrim(grp), 3)
+1。我不知道这样的事情工作:) – shahkalpesh 2013-03-20 19:42:37
+1。这适用于多个列。只需重复“GROUP BY”子句中的所有列即可。如果你有计算列,它会变得复杂。在SELECT * FROM('和')X'内不包含GROUP BY和ORDER BY的查询,并且可以按所有列进行分组和排序,无论是计算还是数据。 – nalply 2013-05-15 09:40:07