sql - SQL或Access中的排序表

标签 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

在基于“代码”和“Fname”的列表中,将不同的“Freq”数字附加在一起?只要所有不同的频率数字都在列表中,顺序就无关紧要。我可以假设对于Code和Fname的每种组合,都会有不同的,非重复的频率数字(因此,“L1”和“Ted”的组合的频率值永远不会超过4)

最佳答案

那你真幸运!

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

但是,我不确定这将如何处理空白。

关于sql - SQL或Access中的排序表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942754/

相关文章:

linux - 当有人连接到特定数据库时如何获得弹出窗口

c# - SelectCommand.Connection 属性尚未初始化

php - 如何在 Windows 2003 上使用 PHP 将 ODBC 连接到 DB2?

php - 在 Mac OSX 上启用 PHP pdo_odbc 扩展

sql - 在 pl/SQl 中继续语句?

sql - 使用什么数据类型在数据库中存储不同的文件

sql - 如何在执行 select 语句 where 子句中使用变量而不在列上出错?

sql - 使用 SSMS 编辑模式在 SQL 表中添加当前日期时间

java - JDBC 连接协议(protocol)不受支持

java - Linux 服务器中的 "java.sql.SQLException: I/O Error: Connection reset"