【发布时间】:2014-12-23 14:32:01
【问题描述】:
基本上我想做以下事情:
select * from thistable
inner join thattable on thistable.invoicenumber = thattable.commentsandsuch
但是,“invoicenumber”字段包含在“commentandsuch”中,从每个记录不同的字符位置开始,因此我无法使用如下表达式加入表格(其中“invoicenumber”始终是最后一个“cmetsandsuch”的5个字符):
right(rtrim(commentsandsuch), 5)
有没有一种方法可以连接两个表,其中一个表的 char 字段值包含在另一个表的 char 字段值中的某个位置?
任何帮助将不胜感激! :)
编辑:
以下是一些示例数据:
invoicenumber: commentsandsuch:
012345 Reg: 021 Inv:012345 Cus:1234 Br:AZ Stk:THISPARTNUMBER123
123456 Reg: 1123 Inv:123456 Cus:4789 Br:BY Stk:ANOTHERPARTNUMBER5
234567 Reg: 74 Inv:234567 Cus:5274 Br:HH Stk:WOOTONEMOREPART0
【问题讨论】:
-
在两个表中显示一些示例数据
-
我建议您先更改数据模型。通过一些正则表达式函数传递
CommentAndSuch列,以将发票编号提取到它自己的列中。在另一个字符串中搜索连接非常慢。 -
我添加了一些示例数据@NoDisplayName,希望这会有所帮助!
标签: sql-server-2008 char inner-join