在SQL或Access中排序表

时间:2012-08-13 21:42:27

标签: sql oracle odbc ms-access-2007

Code  | FName | Freq
---------------------
L1    | Ted   | 4
L1    | Frank | 
L1    | Ted   | 5
L2    | Ted   | 7
L1    | Jim   | 4
L1    | Ted   | 7
L4    | Ed    | 1
L2    | Ted   | 2
L1    | Frank | 2

假设我的数据库中有这样的表格。是否有可能在SQL中获取记录(或在SQL中获取,然后在另一个Access查询中重新组织),以便我可以得到如下所示的记录集:

Code | FName | Freq
-------------------------
L1    | Ted   | 4, 5, 7
L1    | Frank | 2
L2    | Ted   | 2, 7
L4    | Ed    | 1
L1    | Jim   | 4

其中不同的'Freq'数字是根据'Code'和'Fname'列在一个列表中的?只要所有不同的频率数字都在列表中,顺序无关紧要。我可以假设,对于Code和Fname的每个组合,将存在不同的,非重复的频率数(因此'L1'和'Ted'的组合将永远不会有4次的频率值)

1 个答案:

答案 0 :(得分:1)

然后你很幸运!

select code, fname, listagg(cast(freq as varchar(32), ',') within group (order by freq)
from t
group by code, fname

然而,我不确定这对空白是做什么的。