Sql 我的数据中有一个输入错误,如何修复它,以便正确连接两个表?
所以,我有一个不寻常的问题。我有两张桌子需要合并。以下是这两种方法的示例: 我想将列DATE、SITA、B、C、Capacity、SEGMENT(来自第一个表)与列DateArrized、SITA、B、C、Rooms、Market_SEGMENT(来自第二个表)连接起来 现在,我最大的问题是在列段的第一个表中有一个输入错误:BAO应该是BOA。因此,任何带有BAO的数据条目都不会与第二个表中的BOA匹配,因此,当我进行连接时,我丢失了数据 我能做些什么来解决这个问题?我可以在连接查询中做些什么,以便sql将BAO和BOA视为同一事物吗 我的问题是:Sql 我的数据中有一个输入错误,如何修复它,以便正确连接两个表?,sql,sql-server,join,Sql,Sql Server,Join,所以,我有一个不寻常的问题。我有两张桌子需要合并。以下是这两种方法的示例: 我想将列DATE、SITA、B、C、Capacity、SEGMENT(来自第一个表)与列DateArrized、SITA、B、C、Rooms、Market_SEGMENT(来自第二个表)连接起来 现在,我最大的问题是在列段的第一个表中有一个输入错误:BAO应该是BOA。因此,任何带有BAO的数据条目都不会与第二个表中的BOA匹配,因此,当我进行连接时,我丢失了数据 我能做些什么来解决这个问题?我可以在连接查询中做些什
SELECT t1.DATE, t1.SITA, t1.B, t1.C, t1.Capacity, t1.REV, t1.RNS, t1.SEGMENT, t2.Rn, t2.Rev
FROM t1
JOIN t2
ON T1.B = t2.B and t1.C = t2.C and t1.Capacity = t2.Rooms and t1.SEGMENT = t2.Market_segment
感谢您的帮助 在JOIN ON子句或WHERE子句中(定义联接条件的位置),可以指定:
table1.Segment = table2.Market_segment
or (table1.Segment = 'BAO' and table2.Market_segement = 'BOA')
使用此选项并将表替换为表的名称:
UPDATE table SET Market_segment = 'BOA' WHERE Market_segment = 'BAO';
然后使用join连接表。试试这个
SELECT t1.DATE, t1.SITA, t1.B, t1.C, t1.Capacity, t1.REV, t1.RNS, REPLACE(t1.SEGMENT,'BAO','BOA'), t2.Rn, t2.Rev
FROM t1
JOIN t2 ON T1.B = t2.B and t1.C = t2.C and t1.Capacity = t2.Rooms and REPLACE(t1.SEGMENT,'BAO','BOA') = t2.Market_segment;
让我知道这是否适用于您。为什么您不能简单地使用update语句?更新YourTable set YourColumn='BOA',其中YourColumn='BAO'只需在连接条件下使用替换函数,如果无法更改数据,则替换错误的条目。性能有多重要?在连接条件下如何?在所有的连接条件之后它会继续吗@bave性能是什么意思?@GordonLinoffI没有更新表的权限,因此希望在我的查询中执行此操作!不,真的。一旦你开始对坏数据进行硬编码修复,它什么时候停止?到今年年底,你可能不得不替换十几个“坏数据”值。别这样!另一个论点:您的查询是好的,但数据是坏的。数据必须是固定的,否则此查询和命中此数据库的每个其他查询都必须处理它。如果值不超过三个字符,则有效。如果时间更长,你会遇到(比如)将
TBAO
变成TBOA
的问题。。。