Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何判断数据格式不一致本身是否一致?_Sql_Database - Fatal编程技术网

Sql 如何判断数据格式不一致本身是否一致?

Sql 如何判断数据格式不一致本身是否一致?,sql,database,Sql,Database,一位客户向我们发送了两个表,我们需要能够相互交叉引用。不幸的是,我们需要用于交叉引用的列的数据格式不一致 然而,看起来它们在一致的方式上是不一致的。也就是说,在一列中有一个“名称”,而在另一列中有一个名称,前面有一个4位数的id代码和一个空格,因此为“1234名称” 如果不一致性是一致的,那么我们可以通过调用MySQL子字符串函数按原样使用数据。但我不相信。我如何确定这些不一致性是否普遍存在?如果还有其他我没有看到的不一致呢 我需要知道的是,做columnA中的所有唯一值=子字符串(column

一位客户向我们发送了两个表,我们需要能够相互交叉引用。不幸的是,我们需要用于交叉引用的列的数据格式不一致

然而,看起来它们在一致的方式上是不一致的。也就是说,在一列中有一个“名称”,而在另一列中有一个名称,前面有一个4位数的id代码和一个空格,因此为“1234名称”

如果不一致性是一致的,那么我们可以通过调用MySQL子字符串函数按原样使用数据。但我不相信。我如何确定这些不一致性是否普遍存在?如果还有其他我没有看到的不一致呢

我需要知道的是,做columnA中的所有唯一值=子字符串(columnB,6)中的所有唯一值


我对MySQL不是很在行,也尝试过一些查询,但它们要么返回了所有结果(不是不同的结果),要么在服务器上被“中断”,因为有很多数据,它们需要花费很长时间才能运行。帮助?

您可以使用
不存在
子句执行此操作:

select t1.*
from t1
where not exists (select 1
                  from t2
                  where t2.name = substring(t1.columnB, 6)
                 );

这将根据您给定的规则识别所有在
t2
中没有匹配名称的
t1.columnB

这是一个需要解决的可怕问题-尤其是如果您不熟悉SQL

原则上,我总是将此类数据视为“不可信的”——无论您认为适用的规则是什么,随着时间的推移,结果通常都是错误的

我的策略是使用“脏”数据通过运行SQL查询来填充类似的“干净”表,而不是直接使用“脏”数据

因此,您可以使用您认为最有效的模式创建两个表,然后通过在该表中插入
子字符串(columnB,6)
来填充该表。通过添加where子句(例如,
isnumeric(子字符串(t1.columnB,6))
),您可以验证您的假设


一旦有了“干净”的表,就可以轻松地执行联接

这个问题似乎离题了,因为它是关于分析师工作的。没错!我唯一需要做的是增加限制和偏移量,将其分解成更小、更完整的块。