Oracle SQL select 一个 table 列的最终值与其他 table 列中包含值减 1 位的值相似

Oracle SQL select final value of one table column like value from other table column that contains value minus 1 digit

在 Oracle 数据库中,我有 1 个数据库 table1 列,其中包含一个已知值 1,例如:4649843545945894537 此数据库中还有另一个 2nd DB table,其中包含一个列,该列的值是 1st DB table 加上 1 个随机数字,这是该数字的完整值(value2)并且是唯一的. 例如第二个table的完整值2是:46498435459458945374 因此,使用 SQL 我需要通过选择第一个 table 的已知值 1 并使用“like”找到完整的唯一值,从而在第二个 table 处找到数字的完整值 2 value2 在第 2 个 table。 所以,需要 SQL 是这样的(伪 code/SQL):

select value2 from table2 where value2 like '$(value1)%';

因此,在我们的示例中,应翻译成以下内容:

select value2 from table2 where value2 like '4649843545945894537%';

对于值 2 应该 return 46498435459458945374 希望这很清楚我需要什么。 谢谢。

你似乎想要一个 join:

select t1.value1, t2.value2
from t1
inner join t2 on t2.value2 like t1.value1 || '_'

这只允许在 value2 末尾多一个字符。

查询假定您的值是字符串。如果你有数字,那么我会推荐算术:

select t1.value1, t2.value2
from t1
inner join t2 on floor(t2.value2/10) = t1.value1