我想连接2个表,并在连接中使用类似的搜索值(只比较前4个字符串)。但结果应仅为1:1,我想防止主表中的1个条目出现多个结果。
制表符1
| 姓名|
| - -|
| Jackson|
| 迈克尔|
选项卡2
| 姓名|代码|
| - -|- -|
| 千斤顶|小行星12345|
| 千斤顶X|小行星67890|
| 米夏|一万二千元|
| 迈克尔·T.|九万元|
测试结果
| 名称标签1|代码标签2|
| - -|- -|
| Jackson|小行星12345|
| 迈克尔|一万二千元|
对于tab 1中的每个条目,我得到了多个结果。
Select * from tab1
left outer join tab2 on lower(substr(tab1.name,1,4) like '%'||substr(trim(lower(tab2.name)),1,4)||'%'
2条答案
按热度按时间s4n0splo1#
试试看:
| 名称|代码|
| - -|- -|
| Jackson|小行星12345|
| 迈克尔|一万二千元|
| 杰克·丹尼尔斯|小行星12345|
| 米其林|一万二千元|
dbfiddle link
g9icjywg2#
如果你不介意取
code
,你可以按name
分组,取code
/最小值,比如: