我正在寻找一种使用SQL从Access数据库以非常特定的顺序返回数据的方法。我想寻找最低频率,从最低频率的系统开始按频率顺序列出所有系统,然后在下一个最高频率上进行相同的操作,依此类推。
这就是我想要输出的方式。 (换行符只是为了便于查看排序顺序,我稍后会在程序代码中添加它们。)
System Freq
------ ------
FM 100
FM 120
FM 150
AM 110
AM 150
AM 170
CW 160
CW 180
CW 200
SQL可以这样吗?任何帮助将不胜感激。谢谢。
答案 0 :(得分:3)
这是你想要的吗?
Select System, Freq
from YourTableName
Order By System, Freq
或者,如果我正确地“重新阅读”您的问题,可能这就是您想要的(为封装代码背面道歉)
Select YT1.[System], YT1.[Freq]
From YourTable YT1
Inner Join (
Select [System], Min(Freq) MinFreq
From YourTable YT2
Group By [System]
) YT3 on YT1.[System] = YT3.[System]
Order By YT3.[MinFreq], YT1.[System], YT1.Freq
答案 1 :(得分:0)
一般答案是肯定的,为您的Freq计算列提供别名,并按系统和频率排序:查看多行排序here的示例。
答案 2 :(得分:-1)
如果没有更清晰的源数据图片,这看起来只是在多列上的简单顺序:
SELECT [System], [Freq]
FROM [TableName]
ORDER BY [Freq], [System]