我尝试基于匹配的合同号来连接表,但是第一个表在合同号之前有单词" contract“,在合同号之后有一堆空格。我似乎不知道如何在查询中做到这一点,我也尝试过用表达式来做到这一点(我能够做到这一点,但我不能正确地放置一个过滤器来只显示匹配的行)。请帮帮我!
我正在尝试将我的账单表(表名为"RM20101")中的合同号(列名为"TRXDSCRN")连接到我的服务表(表名为"SV00500")中相同的合同号(列名为“SV00500”)。TRXDSCRN列需要某种类型的过滤器来从其数据的开头删除单词" contract“,匹配接下来的10个字母和数字(这是合同号),然后删除单词后面的空格。
如果你需要我遗漏的任何信息,请告诉我。
发布于 2013-04-09 23:44:09
EDIT :它应该是MS SQL的子串。SUBSTR为MySQL。很抱歉给你造成了混乱。
如果我理解正确的话,我想你指的是:
SELECT * FROM RM20101 as RM20101
LEFT JOIN SV00500 as SV00500
ON SUBSTR(RM20101.TRXDSCRN,9,10) = SV00500.Contract_Number为了解释,您真正需要的部分是SUBSTR()部分。这就是说,取列RM20101.TRXDSCRN,从第9个位置开始,在10个字符之后结束。您从第9个位置开始的原因是因为'contract‘有8个字符。当然,您在10个字符之后结束,因为合同如您所述是10个字符的长度。
如果您对它有任何问题,或者它不能完全满足您的所有需求,请告诉我。
https://stackoverflow.com/questions/15906174
复制相似问题