我正在办公室的一个小项目上对我们存储在SQL Server中的客户表以及存储在PostgreSQL中的类似表进行一些清理。基本上我们发现许多客户有一个或多个列有0或空白,需要填写。我们的计划是首先收集0或空白列的所有数据并填写csv,然后以某种方式编写脚本填写每个客户的空白栏。
下面是使用0和空白列查看当前表的示例。关于给定客户需要填写哪一列或哪些列是随机的(我们总是拥有的一件事就是客户的用户名)。
username emp_num title email phone
-------------------------------------------------------------------
jsmith 0 Manager jsmith@somewhere.com
kjones 112222 Clerk 111-222-3333
wgarcia 0 wgarcis@domain.com 444-555-6666
我们会用" 0"填写任何内容。使用6位数字,任何空格都会在csv上填写值。
问题是,在我完成了包含所有客户信息的csv之后,我该怎么做:
任何人都可以共享示例SQL查询来帮助我入门吗? (对于PostgreSQL,如何以不同的方式进行处理?)
TIA, 克里斯
答案 0 :(得分:0)
将联接更新为正确的客户表,如下所示:
update a
set a.emp_num=b.emp_num
from currenttable a join customer b on a.username=b.username
where a.emp_num in (0,'')
答案 1 :(得分:0)
据推测,这是一次性任务。您可以使用Excel或其他电子表格应用程序通过一些简单的字符串构建轻松完成此操作。它不会重复使用,但它通常是最快的解决方案。
如果你拥有大量的客户,那说它不会起作用,但它可以解决几千个问题。
Excel公式
="UPDATE YourTable SET emp_num = " & B2 & ", title = '" & C2 & "', email = '" & D2 & "', phone = '" & E2 & "' WHERE username = '" & A2 & "'"
只需将公式复制到csv中的所有行,然后执行生成的查询。