【发布时间】:2012-04-02 03:23:10
【问题描述】:
我需要将数据从 SQL 数据库(一些组使用 SQL Server、一些 Oracle 等)导出到 CSV,我需要从字符串中的连接表中获取 id。
例如,我有一个班级表和一个学生表。在班级中,我需要 ID、姓名、部门、时间,而在学生中,我需要班级中学生的 ID 字符串。结果将返回以下列:id、name、section、time、student_ids。 'student_ids' 列应为分隔字符串,如:
'32,43,53,12,41'
行输出最终会是这样的:
"1405,Computer Science,101,12-1:30,'32,43,53,12,41'"
每个班级的学生人数不一致,可能是一名学生,也可能是 20 名学生。我考虑过使用 SQL Server 使用 while 循环来获取此数据,或者使用聚合键的临时表,但我想知道是否有任何方法使用标准 SQL 来完成此操作,以便脚本可以移植。
注意:我知道输出格式并不理想,但唯一的其他选择是我们必须为每个班级/学生组合提取不同的记录,然后必须单独汇总 id。
【问题讨论】:
-
什么种类的SQL? MySQL 有 GROUP_CONCAT() 例如。另外,一旦生成,您将如何使用它?我们或许可以提供替代流程。
-
@Dems 不幸的是,SQL 的种类各不相同,尽管几乎总是 Oracle 或 SQL Server 的一个版本
-
@Dems 另外,使用导出作为以标准化格式接收数据的一种方式,不幸的是,不能使用像“class_student”这样的附加导出