我有一些来自第三方的数据,其中一列是名字和姓氏的串联 - 但中间没有空格。我的目标是在第二个大写字母之前插入一个空格,例如:
some_name
-------------
AdamPeterson
JohnSmith
StevenMulroy
会变成:
some_name
-------------
Adam Peterson
John Smith
Steven Mulroy
我知道这不是万无一失的,但这是我拥有的源数据所能获得的最好结果。
我需要在 SQL 而不是 Excel 等中执行此操作 - 因为数据会在数据库级别定期刷新,然后由另一个系统处理而无需先导出。
非常感谢任何帮助!
最佳答案
对于 Mysql 8
SELECT REGEXP_REPLACE(CAST('JohnLexxxanon' as BINARY), '^([A-Z][a-z]+)([A-Z][a-z]+)$', '$1 $2');
对于 MariaDb 10+
SELECT REGEXP_REPLACE(CAST('JohnLexxxanon' as BINARY), '^([A-Z][a-z]+)([A-Z][a-z]+)$', '\\1 \\2');
数据被转换为二进制以实现区分大小写。
这适用于 MySql 8 和 MariaDb 10+
关于mysql - 如何在MySQL中的字符串的第二个大写字母前插入一个空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54540378/