如何根据字段的子字符串值连接两个表?

2023-11-24

我遇到了 sql 问题。我想加入两个表,员工和班级讲师。条件是员工的 unid 列如“u0871457”,而班级讲师的 EmplId 为“00871457”。

我只想将 EmplId 的第一个字符替换为 'u' 来连接以匹配来自 unid 的字符串。我怎样才能做到这一点?到目前为止我已经尝试过了:

select e.name, i.name
from  Employee e
inner join Instructor i on SUBSTR(e.id,1, LENGTH(e.id )) = SUBSTR(i.id,1, LENGTH(i.id ))

但这会导致结果集为空。

任何帮助将不胜感激。谢谢你的时间!


有很多方法可以做到这一点。在采用特定方法之前,最好先查看各种方法的解释计划。例如,如果有一个基于函数的索引EMPLOYEE例如SUBSTR(id, 2, LENGTH(id) - 1)那么你会想在你的查询中使用它:

SELECT e.name, i.name
  FROM employee e INNER JOIN instructor i
    ON SUBSTR(e.id, 2, LENGTH(e.id) - 1) = SUBSTR(i.id, 2, LENGTH(i.id) - 1);

另一个问题是,如果id列的长度始终相同EMPLOYEE and INSTRUCTOR。如果它们的长度不同怎么办?也许一个比另一个有更多的填充。还有,他们会永远是digits除了领先的u?如果是这样,那么尝试安全可能是值得的TO_NUMBER()转换:

SELECT e.name, i.name
  FROM employee e INNER JOIN instructor i
    ON TO_NUMBER(REGEXP_SUBSTR(e.id, '\d+$')) = TO_NUMBER(REGEXP_SUBSTR(i.id, '\d+$'));

然而,您可能还需要考虑另一件事——领先是否有原因?u in the EMPLOYEE id柱子?还能有其他主角吗?是否领先u代表什么(违反第一范式,但这种情况发生了)?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据字段的子字符串值连接两个表? 的相关文章

  • Python SQLite3 SQL注入漏洞代码

    我知道下面的代码片段由于 format 的原因很容易受到 SQL 注入的攻击 但我不知道为什么 有谁明白为什么这段代码容易受到攻击以及我从哪里开始修复它 我知道这些代码片段使输入字段保持打开状态 以便通过 SQL 注入执行其他恶意命令 但不
  • 从多个表中选择 - 一对多关系

    我有这样的表 表产品 身份证 姓名 表格图像 产品 ID 网址 订单号 表价 产品 ID 组合 货币 价格 表数量 产品 ID 组合 数量 表 Product 与其他表是一对多关系 我需要查询表并得到类似这样的结果 伪数组 ProductI
  • MySql如何通过过滤多列来限制多个数字?

    我想从数据库中获取 4 个不同类别的 50 个问题 我想要 4 个不同类别中每个类别的不同数量的问题 我的结果集必须包含第一类 12 个问题 第二类 20 个问题 第三类 10 个问题和第四类 8 个问题 我的问题表中总共有 50 个问题
  • 按小时拆分日期/时间数据并将日期/时间范围展开为行

    我正在尝试使用 SQL Server 将一系列日期 时间数据扩展为多行 例如 我的数据看起来像 Date StartTime EndTime EmployeeID ShiftType 10 1 2019 8 30 00AM 4 57 00P
  • Power BI 中的区分大小写

    我想知道是否可以在 Power BI 中配置区分大小写 我在 Oracle 数据库中有数据 其中主键EXample不同于exampLE 但如果我想将其导入到Power BI中 就不行了 任何想法 目前 我认为最好的选择是在查询编辑器阶段为主
  • 使用绑定和空值命中 Oracle 索引的最佳查询

    我有一个表 该表在多个列上有一个索引 其中许多列可以为空 CREATE UNIQUE INDEX UX MYTABLE A B C D E ON MYTABLE A B C D E 现在 我在 C 代码中尝试检查该表并精确命中索引 对于每个
  • 具有 LINQ 支持的最完整的 ORM?

    我正在寻找一个提供完整或接近完整的 LINQ 支持的 ORM LINQ 到 SQL 支持 LINQ 内部的所有内容 Contains Math Log 等 在不创建新数据上下文的情况下无法预先加载关系属性 ADO NET 实体框架 糟糕的
  • UUID最大字符长度

    我们使用 UUID 作为 Oracle DB 的主键 并尝试确定 VARCHAR 的适当最大字符长度 显然这是 36 个字符 但我们注意到生成的 UUID 比这个长 长度最多为 60 个字符 有谁知道 UUID 的合适最大字符长度 RFC4
  • 将列的值添加到 LIKE 语句中?

    我有 3 个标签表 标签类别和使用过的标签 我想要获取所有标签的列表以及已使用标签的计数 所使用标签的格式是每个具有标签的文档 ID 的逗号分隔值 我一直在尝试类似的方法 但无法将tags tag 字段的值插入到LIKE 语句中 SELEC
  • 如何检测 Postgres 中持有锁的查询?

    我想不断跟踪 postgres 中的互锁 我碰到锁具监控 https wiki postgresql org wiki Lock Monitoring文章并尝试运行以下查询 SELECT bl pid AS blocked pid a us
  • 在 Oracle 中使用触发器记录对表的更改

    我的一门课有一个项目 当我们的两个表发生更改时 我们需要创建一个日志 插入 更新 删除 我们需要使用Oracle触发器和PL SQL 在日志文件中 我们需要记录用户ID 日期时间 IP地址和事件 插入 更新 删除 我知道如何设置触发器 但我
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7
  • SQL - 为每条记录调用存储过程

    我正在寻找一种方法来为 select 语句的每条记录调用存储过程 SELECT SomeIds SELECT spro Id FROM SomeTable as spro INNER JOIN Address addr ON addr Id
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • 使用 data.table 左连接

    假设我有两个数据表 s dataA A B 1 1 12 2 2 13 3 3 14 4 4 15 dataB A B 1 2 13 2 3 14 我有以下代码 merge test merge dataA dataB by A all d
  • SQL Group BY,每个组的前 N ​​个项目

    我有一个 SQL 查询 可以获取给定商店中销量最高的 5 件商品 SELECT TOP 5 S UPCCode SUM TotalDollarSales FROM Sales S WHERE S StoreId 1 GROUP BY S U
  • 如何在动态查询中将行值连接到列名

    我正在开发一个允许配置问题和答案的应用程序 目前最多可以有 20 个答案 但也可能更少 我的结构如下 问题 ID FormId QuestionText AnswerField 1 1 Name Answer01 2 1 Address A
  • 案例陈述以确定我是否应该结合

    我目前想做某种条件联合 给出以下示例 SELECT age name FROM users UNION SELECT 25 AS age Betty AS name 假设我只想在 用户 计数 gt 2 时合并第二个语句 否则不合并两者 总之
  • 从一个sql服务器选择到另一个sql服务器?

    我想将一台服务器 Data Old S1 中的一个表 T1 在 DB1 中 中的数据选择到另一台服务器 Data Latest S2 中的另一个表 T2 在 DB2 中 中的数据 我怎样才能做到这一点 请注意服务器的命名方式 查询也应该考虑

随机推荐

  • Python:双括号有什么作用?

    谁能告诉我为什么这里的括号要加倍 self items append module item 内括号创建一个tuple gt gt gt type a b
  • MapReduce2中如何基于vcore和内存创建容器?

    我有一个由 1 个主节点 名称节点 辅助名称节点 资源管理器 和 2 个从节点 数据节点 节点管理器 组成的小型集群 我在master的yarn site xml中设置了 yarn scheduler minimum allocation
  • Django 管理员根据另一个字段过滤外键下拉列表

    我有 3 个型号 class FileType models Model name models CharField max length 128 class ManagedFile models Model type models For
  • 使用 SSL 连接发送 CDO 电子邮件

    我有一个 asp 页面 它使用 CDO 通过电子邮件发送表单的详细信息 到目前为止 我已经使用 smtp 端口 25 通过与 hmail 服务器的明确连接来完成此操作 我现在需要使用 SSL 连接 我已经创建了安全证书并将 hmail 服务
  • Android 版 AdMob (SDK 7.0) 上的 AdActivity 泄漏

    我有关于内存泄漏Interstitial ads of AdMob with AdActivity目的 每当广告出现时 AdActivity内存中的对象计数增加 1 我通过以下方式检查所有更改MAT明确后GC来电 我使用所有东西的最新版本
  • $.cookie 不是函数

    当我尝试加载使用 jquery 的页面时 遇到以下行 if cookie compare null 我收到错误 cookie 不是函数 有人见过这个吗 这意味着 cookie plugin没有被包含在页面中 至少在被调用之前没有 确保它都被
  • jQuery Mobile .listview('refresh') 不起作用

    我正在使用 jQuery Mobile 构建移动 Web 应用程序 但遇到了问题 我正在使用 jQuery 解析 XML 文件并创建列表项 它构建列表 然后附加该列表 li 到 ul 在页面上 我读到为了让列表的样式正确 你必须调用 lis
  • 我可以用 malloc 和隐式转换替换对 open_memstream 的调用吗?

    All 我有一个打印到流的程序 我需要在内存中缓冲该流 然后根据需要将每一行打印到实际文件中 自从fprintf 函数调用必须有一个FILE 指针 我需要说的是内存中的指针寻址空间 我曾经用过open memstream 函数 但 Wind
  • 将查询参数与 cfscript 查询一起使用时出错

    这是我的代码 var qryStr UPDATE templates email SET title title test emails testEmail body body WHERE id templateID q New Query
  • jQuery - 链接自定义函数

    我想知道如何链接我的自定义函数并维护 this 的上下文 Example fn foo function var html div class foo div if this hasClass somthing this prepend h
  • NPM Workspaces monorepo - 以 root 身份共享本地包的分发文件夹,而不是整个源文件

    使用 NPM 工作区 我共享一个包 components 和其他人 webapp1 and webapp2 像这样的东西 root apps webapp1 webapp2 packages components 一切都运转良好 但里面的一
  • gcc 可以使我的代码并行吗?

    我想知道 gcc 中是否有优化可以使一些单线程代码 如下面的示例 并行执行 如果没有 为什么 如果是 可以进行哪些优化 include
  • 如何通过关键字在 GIT 存储库中找到无法访问的提交哈希?

    我对 GIT 的情况有点困惑 我正在开发一个 GIT 版本化项目 我刚刚注意到我们认为几周前已经在主分支上的一些提交实际上丢失了 我记得这些提交是由其他人在功能分支 feature something 上推送的 该分支已不存在 我试图找到那
  • 如何使用 spring-kafka 暂停和恢复 @KafkaListener

    我已经实现了 Kafka 消费者 现在我有了一个场景 通过Spring Boot从Kafka流中读取数据2 2 5 Release 加载数据库表1 将表1的数据复制到表2 清空表格1 要执行上述操作 我需要使用使用quartz的调度作业 已
  • php 帖子的最大大小?

    难道POST请求有大小限制吗 我有一个大程序 我想缓存其输出 基本上 我想在缓存中存储一 个重要的 html 表 因为特定项目的增长 查询数量以及响应时间变得失控 现在我正在发送由 ajax 调用检索的大输出 在另一个 ajax 调用中 第
  • 如何在 REST 中实现粗粒度乐观锁?

    我已经为 REST 资源实现了乐观锁定 这些资源通过将 GET 中的版本号传回 PUT 调用 与数据库表进行一对一映射 如果在执行 GET 和 PUT 之间数据库中的版本号发生变化 则发生乐观锁异常 非常简单的设计 现在 如何对映射到多个数
  • C++11 可重入类锁定策略

    我有一个使用的界面pimpl习语 但是接口需要是可重入的 然而 调用线程不需要知道锁定 这是由四部分组成的问题和一部分无端设计的 C 11 示例 包含示例是为了解决我遇到过的几个类似常见问题解答的问题 locking pimpl rvalu
  • 曼哈顿距离 A*

    我正在使用 A 搜索算法并使用曼哈顿距离作为启发式来实现 NxN 谜题求解器 我遇到了一个好奇的问题bug 我无法理解 考虑这些谜题 0 元素是空白 最初的 1 0 2 7 5 4 8 6 3 goal 1 2 3 4 5 6 7 8 0
  • 获取等于目标的数组项的总和(子集总和)

    我需要获得等于目标的数组项的总和 如果数组项的总和不等于目标 我想获得小于目标的最高总和 这是一个例子 Input 4 6 8 12 4 6 6 12 4 4 4 Results 12 12 8 4 6 6 4 4 4 6 4 Note 数
  • 如何根据字段的子字符串值连接两个表?

    我遇到了 sql 问题 我想加入两个表 员工和班级讲师 条件是员工的 unid 列如 u0871457 而班级讲师的 EmplId 为 00871457 我只想将 EmplId 的第一个字符替换为 u 来连接以匹配来自 unid 的字符串