不带 CAP_FIRST 的列的多个单词的首字母大写
Capitalize first letter of multiple words of a column without CAP_FIRST
我有一个table如下
Name
firstname lastname
FirstName Lastname
firstName Lastname
FirstName lastname
我试图在所有 4 种情况下将 firstname
和 lastname
的每个字母大写为 Firstname Lastname
。
对于不使用 CAP_FIRST 函数的查询有什么建议吗?我可以使用正则表达式吗?
这是一个有效的查询:
SELECT
CONCAT(
UPPER(SUBSTRING(Name,1,1)),
LOWER(SUBSTRING(Name,2,Locate(' ', Name)-1)),
UPPER(SUBSTRING(Name,Locate(' ', Name)+1,1)),
LOWER(SUBSTRING(Name,Locate(' ', Name)+2)))
FROM NameTable;
这是结果:
Name
Firstname Lastname
Firstname Lastname
Firstname Lastname
Firstname Lastname
要更新列使用,
UPDATE NameTable
SET NameTable.Name = CONCAT(
UPPER(SUBSTRING(Name,1,1)),
LOWER(SUBSTRING(Name,2,Locate(' ', Name)-1)),
UPPER(SUBSTRING(Name,Locate(' ', Name)+1,1)),
LOWER(SUBSTRING(Name,Locate(' ', Name)+2)));
此致
我有一个table如下
Name
firstname lastname
FirstName Lastname
firstName Lastname
FirstName lastname
我试图在所有 4 种情况下将 firstname
和 lastname
的每个字母大写为 Firstname Lastname
。
对于不使用 CAP_FIRST 函数的查询有什么建议吗?我可以使用正则表达式吗?
这是一个有效的查询:
SELECT
CONCAT(
UPPER(SUBSTRING(Name,1,1)),
LOWER(SUBSTRING(Name,2,Locate(' ', Name)-1)),
UPPER(SUBSTRING(Name,Locate(' ', Name)+1,1)),
LOWER(SUBSTRING(Name,Locate(' ', Name)+2)))
FROM NameTable;
这是结果:
Name
Firstname Lastname
Firstname Lastname
Firstname Lastname
Firstname Lastname
要更新列使用,
UPDATE NameTable
SET NameTable.Name = CONCAT(
UPPER(SUBSTRING(Name,1,1)),
LOWER(SUBSTRING(Name,2,Locate(' ', Name)-1)),
UPPER(SUBSTRING(Name,Locate(' ', Name)+1,1)),
LOWER(SUBSTRING(Name,Locate(' ', Name)+2)));
此致