我有一个我需要提取的查询,感觉它超出了标准SQL的设计范围。它可能在技术上是可行的,但我觉得最终的查询很难计划,编写,理解和维护。
我基本上有4个数据表需要进入1个表格,而且1个表格无法处理所有原始数据中可能存在的数据.I&#39 ; ll需要根据多种因素选择要使用的数据,包括字段值,字段是否为空,以及数据是否重复。我还需要拆分包含分号分隔数据的特定字段。
由于这一切,我认为某种脚本语言可能是最好的。我想知道哪种工具最适合这类工作。
我从Microsoft SQL Server数据库中提取并听说过,但没有真正使用过T-SQL。也许T-SQL包含足够的额外功能,可以轻松地在其中编写这样的查询?
我很高兴把时间花在学习必要的工具和语言上,我只是不知道我真正需要什么样的工具,那就是我&#的所在39;我正在寻求建议。
我已经详细说明了下面的具体情况,如果这有助于提供答案。
我需要从高中学生信息中导出信息 系统(SIS)用于导入联合课程管理系统。相关表格和 SIS的列是:
┌──────────┬────────────────┬─────────────────┬───────────────┐ │ student │ parent │ address │ student_addr │ ├──────────┼────────────────┼─────────────────┼───────────────┤ │ PK id │ PK id │ PK parent_id │ PK student_id │ │ name │ mother_name │ PK addr_num │ PK parent_id │ │ email │ father_name │ phone │ PK addr_num │ │ │ │ email │ PK addr_type │ │ │ │ │ │ └──────────┴────────────────┴─────────────────┴───────────────┘
所以每位学生都有一张
student
条记录。parent
条记录 可能占一两个实际的人(母亲和父亲,或 只是一个单亲)取决于家庭结构。parent
记录然后有多个address
记录,通常3-4,有时 每个都包含相同的数据,有时可能会有所不同。然后将这些
address
es(以及parent
s)链接到 学生通过student_addr
表格,addr_type
定义该地址应该用于该学生的目的 (例如,大众通信,个人通信,自动 通知)。
address.email
字段有时包含多个分号 分开的电子邮件。由于student
s可以链接到的事实 多个parent
个多个address
个,一个学生可以 链接到许多address.email
字段,当然这些字段本身 可能包含多个地址。我需要选择最多两个父母姓名,电话和电子邮件 联合课程系统:
┌───────────────┐ │ student_id │ │ student_name │ │ student_email │ │ parent1_name │ │ parent1_phone │ │ parent1_email │ │ parent2_name │ │ parent2_phone │ │ parent2_email │ └───────────────┘
我将确定从哪个
phone
和
- 如果电子邮件重复
addr_type
- 如果某个特定字段为空白
答案 0 :(得分:0)
您可以使用Python或PowerShell等高效的脚本语言。但是如果你不熟悉它们,它可能比SSIS花费更长的时间。它包含了一些在您的情况下看起来很方便的功能,并允许您可视化您的数据需要遵循的工作流程。
顺便说一下:还有很多其他可用的ETL工具,我更喜欢SSIS,但根据您的源系统,您可能更喜欢其他工具。因此,在开始下载和安装之前,请务必使用Google。