【发布时间】:2016-10-05 16:21:00
【问题描述】:
我正在寻找一种优雅的方式来重新格式化数据以进行连接。我有两张表,它们的关键数据相同,但格式明显不同。
我正在使用 SQL Server。数据看起来像这样 表一:
74-123-58
896-777-92
4567-78
表 2:
00007400123
00089600777
00456700078
表 1 中的键分别用破折号分割成元素,有时缺少第 3 个元素(表 2 中未找到)。
表 2 始终将第一个元素的左零填充为 6 个字符,第二个元素的左零填充为 5 个字符。
我可以通过一个包含嵌入式 charindex、left、substring 和复制函数的非常长的公式来完成此操作。我想用一些简单的东西来编写它,并且对于将来尝试对我的代码进行故障排除的人来说更容易理解。
有什么好主意吗?
【问题讨论】:
-
如果你想使用“一些简单的东西”来完成它,那么首先你必须修复你的架构并使用适当的键进行连接,这也可以利用索引。对于当前(损坏的)数据库,连接的唯一方法是放置一个表达式以从另一个获取格式。
标签: sql sql-server