SQL - 忽略字段文本的第一个字符

问题描述 投票:0回答:4

在解释我需要做什么之前,让我列出一些这些领域的样子......

|---------------------|------------------|------------------|
|      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!

sql oracle where
4个回答
2
投票

其中T1.CustId = substr(T2.ExtCustId,2)


0
投票

SQLCliff最终给了我解决方案的垫脚石。出于某种原因,我并没有真正考虑长度......

我也没有更新OP,并说我正在使用Oracle ......我的错都不是你的!

但这是我修复的解决方案 -

where not(t1.CustID like substr(t2.customer_external.external_customer_code,length(t2.customer_external.external_customer_code)- 5))

0
投票

使用以下语句右(fieldname,len(fieldname)-1)


0
投票
RIGHT(T2.ExtCustID, LEN(T2.ExtCustID) -1 )

这将返回ExtCustID的最右边x个字符,其中x是ExtCustID的LEN(字符数)减去1。

© www.soinside.com 2019 - 2024. All rights reserved.