【发布时间】:2012-10-26 23:27:50
【问题描述】:
我有一个复杂的嵌套替换,我用它来连接 MSSQL 中的两个表。
select * from A
left outer join
select * from B
on
replace(
replace(
replace(
replace(
replace(A.Column1, '1114', ''),
'1160', ''),
'1162', ''),
'1167', ''),
'1176', ''),
'1177', '') = B.Column1
我这样做的全部原因是因为 Table1 中的数据包含一些 噪音 - 像 1160、1162 等数字,其中 Table2 是干净的字符。
Eg. - Table 1 - 'HELLO1160WORLD'
Table 2 - 'HELLOWORLD'
现在在我的情况下,我应该能够将它们匹配作为一个条目。
我目前的嵌套替换方法确实有效,但我不相信这是一种优雅的方法。任何帮助都感激不尽。谢谢
【问题讨论】:
-
我希望您将
SELECT *用于说明目的,而不是作为练习。 -
您可以发布一些示例数据,然后显示您想要的最终结果吗?
-
当然。您需要什么帮助?
-
是的,我实际上并没有使用 * - 只是为了让事情变得更简单。我会编辑原始问题以使其更清晰
-
'HELLO1160WORLD'是有效的数据吗?如果是的话,真可惜。如果没有,为什么不在前端进行消毒?
标签: sql sql-server