oracle两张表怎么匹配数据?

我现在有一张邮件表emails 里面有email 还有一张表供应商表 suppliers 里面有邮件地址,比喻emails里面的baidu@sina.com那么对映的供应商名就是@sina.com,我想匹配一下,
供应商里面有几个供应商@sina.com @sina.com.cn,@163.com,@126.com,@yahoo.com,@hotmail.com,@gmail.com,@avi.com,@qq.com,如果那些邮件里面不是这些供应商那么就以一种固定格式,像旁边的这个@evnchen.com.cn,请问这个怎么搞?
ps:为了不乱费分,有答案了绝对给分

select e.有简历名,e.substr(邮箱列名,instr(邮箱列名,'@')),s.供应商列名 from 邮件表 e
left join 供应商表 s where e.substr(邮箱列名,instr(邮箱列名,'@')) = s.供应商列名

不知道这两个表有哪些字段 看看上面这成么 最好把把表结构描述清楚点~~
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-17
select * from email a,suppliers b
where substr(a.字段,-1,instr(a.字段,'@'))=b.字段

在oracle中怎么将两个表合在一起?
如果两个表具有相同的列和数据类型,并且你想将一个表的所有行插入到另一个表中,可以使用INSERT INTO SELECT语句。例如,假设有两个表table1和table2,你可以使用以下语法将table2中的所有行插入到table1中:sql INSERT INTO table1 SELECT * FROM table2;请确保table1中的列和table2中的列对应匹配...

Oracle 中left join,where,group by的用法
左连接(LEFT JOIN)用于查询两个表中的匹配数据,无论另一表中的数据是否存在。它确保了所有来自左表(表_1)的行在结果集中都存在,即使没有匹配的右表(表_2)行。左连接的语法如下:SELECT table_1.n1,table_2.n1,function(table_1.n2) FROM table_1 LEFT JOIN table_2 ON table_1.ns=...

oracle表之间有哪些连接方式
1相等连接 通过两个表具有相同意义的列,可以建立相等连接条件。只有连接列上在两个表中都出现且值相等的行才会出现在查询结果中。例 查询员工信息以及对应的员工所在的部门信息;SELECT * FROM EMP,DEPT;SELECT * FROM EMP,DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;REM 显示工资超过2000的员工信息以及对应...

oracle两张表关联查询
select e.empno, e.ename, d.deptno, d.dname from emp e, dept d where e.deptno = d.deptno;在之前所使用的查询操作之中,都是从一张表之中查询出所需要的内容,那么如果现在一个查询语句需要显示多张表的数据,则就必须应用到多表查询的操作,而多表查询的语法如下:SELECT [DISTINCT] * ...

oracle数据库,两张表 根据一个字段来匹配
select "职工号" from a table1 left join b table2 on table2.不变号 = table1.不变号职工号在哪个表里面就在把 "职工号" 替换成 tableX.职工号

oracle两张表怎么匹配数据?
select e.有简历名,e.substr(邮箱列名,instr(邮箱列名,'@')),s.供应商列名 from 邮件表 e left join 供应商表 s where e.substr(邮箱列名,instr(邮箱列名,'@')) = s.供应商列名 不知道这两个表有哪些字段 看看上面这成么 最好把把表结构描述清楚点~~...

oracle 有两个表,两个表的两个字段都一样,如何一一对应匹配合并成一个...
你要是想把空格那个地方显示成“空格”两个字的话就decode,或者nvl一下就好了

oracle 登录时间和登出时间分布存在两张表里面,如何匹配并合并?
如按图所示,sql为两表关联,条件是两个uid相等,截取登陆时间的月日等于登出时间的月日即可。如果登陆时间与登出时间不是同一天,就得不到预期结果了

oracle 数据库多表连接语法
在写一个连接表的 SELECT 语句时,在列名前面用表名或者表别名可以使语义清楚,并且加快数据库访问。为了连接 n 个表在一起,你最少需要 n-1 个连接条件。例如,为了连接 4 个表,最少需要 3 个连接条件。等值连接也被称为简单连接 (simple joins) 或内连接 (inner joins)。是通过等号来判断...

oracle 两表间字段的模糊匹配(clob)
其实就是那个 on 后面1=1这个东西可以不用 连接用left join ,on instr()--这里写上包含条件就可以了

相似回答