SQLite)在 JOIN 中使用正则表达式 JOIN

SQL(ite) JOIN with regex within JOIN

我有两个 table,它们都有一个名为 Name 的列。有时名称以大写字母开头,而有时则不是。我想加入名称上的两个 table,以便鲍勃与鲍勃的相匹配。我假设这可以通过正则表达式实现,那么如何构造一个 SQL JOIN 查询来进行匹配以及正确的正则表达式是什么?

例如:假设我有 table1 作为 :

Name| col1
----------
Bob | a
Jon | b

和table 2 为:

Name| col2
----------
bob| c
Jon| d

我会按如下方式加入它们(xx 是缺少的正则表达式,yy 是正确的 selection)

SELECT * , yy as NameWithCapAtFront
FROM table1 as t1
LEFT JOIN table2 as t2
ON xx(t1.Name)=xx(t2.Name)

但这错过了 bobBob 的匹配。

此外,如何始终 select 大写版本的名称。

只使用 lower() 函数怎么样?

SELECT *, upper(substr(t1.name, 1, 1) || lower(t1.name, 2) as NameWithCapAtFront
FROM table1 as t1 LEFT JOIN
     table2 as t2
     ON lower(t1.Name) = lower(t2.Name);

不可否认,这将整个名称小写,但在这种情况下这似乎是合理的。