我的oracle db中有两个表A,B,我希望根据唯一字段(userid)比较两个表的数据,但B表包含用户ID为Puserid(所有ID附加P)
如何在两种表中使用上述情况的情况来检索数据?
答案 0 :(得分:2)
您可以使用ltrim
:
select a.*, b.*
from tableA a join tableB b on ( a.userid = ltrim(b.userid,'P') );
答案 1 :(得分:2)
技术上," P"是 prepended ,而不是附加。
您可以使用||
:
from a join
b
on b.userId = 'P' || a.userId
这可能会对性能产生重大影响。如果能够,则应在b
(可能是虚拟列)中定义新列。以上内容可以使用b(userid)
上的索引。
您也可以将其命名为:
from a join
b
on a.userId = substr(b.userId, 2)
这可以使用a(userid)
上的索引。