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