在解释我需要做什么之前,让我列出一些这些领域的样子......
|---------------------|------------------|------------------|
| T1.CustID | T2.CustID | T2.ExtCustID |
|---------------------|------------------|------------------|
| 1234 | 1234 | A1234 |
|---------------------|------------------|------------------|
所以我需要构建一个where语句,它基本上忽略了ExtCustID中的第一个字母,并试图在T1.CustID中找到相同的ID。
T1和T2通过CustID(内连接)连接,但我无法想出where语句...
我尝试过像where T1.CustID like (right(T2.ExtCustID and where T1.CustID like (substring(T2.ExtCustID
这样的东西,但我不确定我可以使用RIGHT / SubString / TRIM来做到这一点......任何人都可以指出我正确的方向/举个例子吗?
注意 - 我正在使用Oracle!
其中T1.CustId = substr(T2.ExtCustId,2)
SQLCliff最终给了我解决方案的垫脚石。出于某种原因,我并没有真正考虑长度......
我也没有更新OP,并说我正在使用Oracle ......我的错都不是你的!
但这是我修复的解决方案 -
where not(t1.CustID like substr(t2.customer_external.external_customer_code,length(t2.customer_external.external_customer_code)- 5))
使用以下语句右(fieldname,len(fieldname)-1)
RIGHT(T2.ExtCustID, LEN(T2.ExtCustID) -1 )
这将返回ExtCustID的最右边x个字符,其中x是ExtCustID的LEN(字符数)减去1。