【发布时间】:2014-10-16 19:26:38
【问题描述】:
我需要连接来自两个不同数据库的两个表。一张表来自他们的飞行操作软件,名为“Trips”,列有“Trip Number”。我需要将其加入到包含其会计软件中发票的表格中,并带有“发票编号”列。
发票号码是:
- 行程编号
- CM + [行程编号]
- [行程编号] + [a-Z]
- [行程编号] + [a-Z] + [a-Z]
- [行程编号] + [a-Z] + [a-Z] + [a-Z]
- CM + [行程编号] + [a-Z]
- CM + [行程编号] + [a-Z] + [a-Z]
- CM + [行程编号] + [a-Z] + [a-Z] + [a-Z]
所以连接将是 [Invoice Number] = [Trip Number] OR [Invoice Number] = 'CM' + [Trip Number] OR [Invoice Number] = [Trip Number] + [a-Z] OR....
有没有更好、更简洁的方法来做到这一点?我不能使用 '%'+[Trip Number]+'%' 之类的 [Invoice Number],因为这将不仅仅包含上述匹配条件,例如它会将行程号 1000 与发票号 10001 匹配。有没有办法说 ~this~ + [a-Z] 集合中的 0-3 个字符?
【问题讨论】:
-
regex... 我会先从他们的数据中过滤/清除发票编号,然后将其与您的数据结合起来。
-
为什么需要更简洁的方式?减少打字?您当前的版本准确地显示了发生的情况并且易于扩展。连接需要以任何方式进行索引/表扫描,因此一些额外的字符串比较不会影响性能。
-
@adrianm 你或多或少是对的。我原本想让以后看到它的人更容易阅读,但这是我格式化的一个功能。正确格式化后,我相信它很容易理解。
标签: sql sql-server sql-like