2016-06-27 72 views
0

所以我有一列包含FirstnameSecondname(未分隔)。两个名字的第一个字母都是大写字母。我需要将这些值分开放在单独的列中 - Firstname,SecondnameFullname(这两个字符串部分都用空格分隔)。但是,因为我可以将各个部分连接起来,所以这不会成为问题。SQL将字符串切分为第二个大写字母(Postgres)

+0

'选择x [1]为N1,X [2]如从regexp_matches N2( 'FirstnameSecondname','([AZ] [AZ] *)([ AZ] [az] *)')as t(x);' – Abelisto

+0

很好,谢谢! – ryder951

回答

0

在大多数情况下,SQL Server将字符串(varchar)视为不区分大小写,因此您需要明确设置区分大小写的排序规则。接下来你必须找到最后大写字母并使用这个位置。共

declare @a varchar(50)='FirstnameSecondname' 
select reverse(
     left(reverse(@a), 
       PATINDEX('%[A-Z]%', 
       reverse(@a collate SQL_Latin1_General_Cp437_BIN)))) secondname 

用于姓类似花样

相关问题