数据 sanitization/clean-up

data sanitization/clean-up

只是想知道……

我们有一个 table,其中某些字段中的数据是字母数字,包括 1-2 位字母和后跟 1-2 位数字,例如x2, x53, yz1, yz95

数字前添加的字母数可以由字段决定,这样某些字段总是在数字前添加相同的 1 个字母,而其他字段总是有相同的 2 个字母。

对于每个字段,实际的字母和添加的字母数量(1或2)总是相同的,因此,我们总是可以通过字段名称来判断哪些字母出现在数字之前。

为了所有下游数据分析的目的,只有字符串中的数值才是重要的。

Sql 查询是在用户表单后面动态构造的,其中最终的 sql 可以采用多种形式,具体取决于用户选择的选择和开关。有了这个,VBA 生成 sql 结构就相当复杂了,包含许多通往最终 sql 结构的 conditions/variable 途径。 有了这个,它会使 VBA 和 sql 更容易编写、读取、调试,并且可能会提高 sql 执行速度等——如果我们只处理数字数据类型例如我不需要在“strSQL = strSQL & …”的众多行中容纳许多撇号

鉴于正在分析的数据本身是通过常规 .csv 提取的实时源导入的副本,是否可以接受 table 在导入阶段预先 sanitize/clean-up 这些字段将其中的数据转换为数值和字段数据类型? - 可能通过修改用于生成提取物的 sql 或通过修改用于将提取物导入分析 table 的 schema/vba 过程,例如使用诸如“= Replace(OriginalField,”yz”,”)”之类的替换函数之类的东西来去除 yz 字符。

是的,link csv "as is",并为每个 linked table 创建一个直接的 select 查询来进行清理,例如:

 Select
      Val(Mid([Field1], 2)) As NumField1,
      Val(Mid([Field2], 1)) As NumField2,
        etc.
      Val(Mid([FieldN], 2)) As NumFieldN
 From
      YourLinkedCsvTable

然后在您需要数据时在整个应用程序中使用此查询。