2016-06-27 16 views
0

So habe ich eine Spalte, die FirstnameSecondname (nicht getrennt) enthält. Die ersten Buchstaben beider Namen sind Großbuchstaben. Ich müsste diese Werte in separate Spalten aufteilen - Firstname, Secondname und Fullname (wobei beide Teile der Zeichenfolge durch Leerzeichen getrennt sind). Aber da ich die einzelnen Teile miteinander verketten könnte, wäre das kein Problem.SQL Cut String zu zweiten Großbuchstaben (Postgres)

+0

'select x [1] als n1, x [2] als n2 von regexp_matches ('FirstnameSecondname', '([AZ] [az] *) ([ AZ] [az] *) ') als t (x); ' – Abelisto

+0

Funktioniert gut, danke! – ryder951

Antwort

0

In den meisten Fällen berücksichtigt SQL Server Zeichenfolgen (varchar) nicht zwischen Groß- und Kleinschreibung, daher müssen Sie die Groß- und Kleinschreibung explizit festlegen. Als nächstes müssen Sie letzten Großbuchstaben finden und diese Position verwenden. Insgesamt

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

Benutzen Sie ähnliche Tricks für Vornamen