【问题标题】:Oracle SQL select final value of one table column like value from other table column that contains value minus 1 digitOracle SQL 选择一个表列的最终值,例如从包含值减 1 位的其他表列中的值
【发布时间】:2021-03-31 18:10:51
【问题描述】:

在 Oracle 数据库中,我有 1 个 DB table1 列,其中包含一个已知 value1,例如:4649843545945894537 该数据库中还有另一个第二个 DB 表,其中包含一个列,其中包含第一个 DB 表的值加上 1 个随机数字,这是该数字的完整值 (value2),并且它是唯一的。 例如第二张表的完整值2为:46498435459458945374 因此,使用 SQL 我需要通过选择第一个表的已知 value1 并使用“like”在第二个表中找到完整的唯一 value2 来找到第二个表中数字的完整 value2。 所以,需要 SQL 类似于(伪代码/SQL):

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

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

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

应该返回 value2 46498435459458945374 希望这很清楚我需要什么。 谢谢。

【问题讨论】:

    标签: sql oracle inner-join sql-like


    【解决方案1】:

    你似乎想要一个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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多