SQL(ite)连接与连接中的正则表达式

SQL(ite)连接与连接中的正则表达式,sql,regex,sqlite,join,Sql,Regex,Sqlite,Join,我有两个表,都有一个名为Name的列。有时名称以大写字母开头,而有时不以大写字母开头。我想把名字上的两个表连接起来,这样鲍勃的名字就可以和鲍勃的名字相匹配了。我假设正则表达式可以实现这一点,那么如何构造一个进行匹配的SQL连接查询呢?正确的正则表达式是什么 例如:假设表1为: Name| col1 ---------- Bob | a Jon | b 表2如下: Name| col2 ---------- bob| c Jon| d 我将加入他们如下(xx是缺少的正则表达式,yy是正确的选择

我有两个表,都有一个名为
Name
的列。有时名称以大写字母开头,而有时不以大写字母开头。我想把名字上的两个表连接起来,这样鲍勃的名字就可以和鲍勃的名字相匹配了。我假设正则表达式可以实现这一点,那么如何构造一个进行匹配的SQL连接查询呢?正确的正则表达式是什么

例如:假设表1为:

Name| col1
----------
Bob | a
Jon | b
表2如下:

Name| col2
----------
bob| c
Jon| d
我将加入他们如下(xx是缺少的正则表达式,yy是正确的选择)

但是这会错过与
bob
匹配的
bob


此外,如何选择名称的大写版本

使用
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);

诚然,这个小写字母代表了整个名称,但在这种情况下这似乎是合理的。

只使用
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);

诚然,这个小写字母代表了整个名称,但在这种情况下这似乎是合理的。

只使用
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);

诚然,这个小写字母代表了整个名称,但在这种情况下这似乎是合理的。

只使用
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);

诚然,这个小写字母代表了整个名称,但在这种情况下这似乎是合理的。

在SQL Server上是这样吗?我不记得SQL Server在连接时区分大小写,例如that@JeffOrris . . . 任何给定数据库是否使用区分大小写的比较取决于表、数据库和服务器的排序规则。默认情况下,我不认为联接在大多数数据库中是区分大小写的(我会说全部),但这似乎是本操作的一个问题。在SQL Server上是这样吗?我不记得SQL Server在连接时区分大小写,例如that@JeffOrris . . . 任何给定数据库是否使用区分大小写的比较取决于表、数据库和服务器的排序规则。默认情况下,我不认为联接在大多数数据库中是区分大小写的(我会说全部),但这似乎是本操作的一个问题。在SQL Server上是这样吗?我不记得SQL Server在连接时区分大小写,例如that@JeffOrris . . . 任何给定数据库是否使用区分大小写的比较取决于表、数据库和服务器的排序规则。默认情况下,我不认为联接在大多数数据库中是区分大小写的(我会说全部),但这似乎是本操作的一个问题。在SQL Server上是这样吗?我不记得SQL Server在连接时区分大小写,例如that@JeffOrris . . . 任何给定数据库是否使用区分大小写的比较取决于表、数据库和服务器的排序规则。默认情况下,我不认为联接在大多数数据库中是区分大小写的(我会说全部),但这似乎是本操作的一个问题。