0
所以我有一列包含FirstnameSecondname
(未分隔)。兩個名字的第一個字母都是大寫字母。我需要將這些值分開放在單獨的列中 - Firstname
,Secondname
和Fullname
(這兩個字符串部分都用空格分隔)。但是,因爲我可以將各個部分連接起來,所以這不會成爲問題。SQL將字符串切分爲第二個大寫字母(Postgres)
所以我有一列包含FirstnameSecondname
(未分隔)。兩個名字的第一個字母都是大寫字母。我需要將這些值分開放在單獨的列中 - Firstname
,Secondname
和Fullname
(這兩個字符串部分都用空格分隔)。但是,因爲我可以將各個部分連接起來,所以這不會成爲問題。SQL將字符串切分爲第二個大寫字母(Postgres)
在大多數情況下,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
用於姓類似花樣
'選擇x [1]爲N1,X [2]如從regexp_matches N2( 'FirstnameSecondname','([AZ] [AZ] *)([ AZ] [az] *)')as t(x);' – Abelisto
很好,謝謝! – ryder951