当前位置: 首页 > 面试题库 >

Oracle中的子字符串索引

漆雕原
2023-03-14
问题内容

我刚刚发现,根据SELECT我们执行最多的查询,当前的数据库设计效率有些低下。IBAN是根据国家/地区特定格式的位置坐标。

由于我们主要在某些表中的IBAN列的精确子字符串上执行JOINs和WHEREs,因此我的问题是将索引分配给列的子字符串

我们是否被迫向表中添加冗余和索引列?IE。添加列NATION_CODEIBAN_CINIT_CINIT_ABIIT_CABIT_ACCOUNT(其中IT_字段只考虑在开始ITXX帐户)每一个与适当的二级索引
是否有任何特殊的二级索引的,可以仅在一列的子串被施加?

第一种解决方案会使数据库变得更加复杂,因为IBAN帐户一直在DBMS中使用(显然,我无法完全控制设计)。

谢谢

[编辑]典型查询

SELECT * FROM DELEGATIONS WHERE SUBSTR(IBAN, 6, 5) IN (SELECT ABI FROM BANKS WHERE ANY_CONDITION)

提取目标帐户属于与CONDITION相匹配的任何银行的所有付款委托。应该改为

SELECT * FROM DELEGATIONS WHERE SUBSTR(IBAN, 1, 2) = 'IT' AND SUBSTR(IBAN, 6, 5) IN (SELECT ABI FROM BANKS WHERE ANY_CONDITION)

确保BBAN确实持有数字的银行代码[6-11]


问题答案:

您正在寻找基于html" target="_blank">函数的索引:

create index ix_substring on TABLE (substr(COLUMN, 4, 9))


 类似资料:
  • 问题内容: 我曾经在JavaScript中这样做: Swift没有此功能,如何做类似的事情? 问题答案: 编辑/更新: Xcode 11•Swift 5.1或更高版本 用法: 不区分大小写的样本 正则表达式样本

  • 问题内容: 在更高版本中,我可以使用: 表: 员工 预期产量: 请帮助我获取 SQL Oracle 9i的*ID列中字符之间的子字符串。 * 问题答案: 您不需要正则表达式-只需使用和:

  • 问题内容: 我有: 功能: 和一个字符串:, 我本质上是想输入并返回,但是我却不断地返回。 码: 不知道怎么了! 问题答案: 理想情况下,您会 像痴呆的刺猬说的那样 使用 str.find 或 str.index 。但是你说你不能… 您的问题是您的代码仅搜索搜索字符串的第一个字符(第一个字符在索引2)。 您基本上是说if是in ,递增直到我测试它返回3时,但这仍然是错误的。这是一种方法。 它产生了

  • 我习惯于在JavaScript中这样做: 斯威夫特没有这个功能,怎么做类似的东西?

  • 问题内容: 我想在给定的输入string中找到某个子字符串最后一次出现的位置(或索引)。 例如,假设输入字符串为,子字符串为,则应输出3。 我怎样才能做到这一点? 问题答案: 用途: 另外,请勿将其用作变量名,否则将使内置的阴影变暗。

  • 我已经尝试遍历字符串并手动替换它们,但计数是关闭的。我也尝试过使用列表、数组、stringbuilder等,但我无法使其工作: 我觉得必须有一种简单的方法来用子字符串替换字符串中的单个字符,而不必进行所有这些迭代。我说错了吗?