Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie teile ich eine Zeichenfolge, damit ich auf Element x zugreifen kann?

Ich glaube nicht, dass SQL Server eine eingebaute Split-Funktion hat, also ist die einzige andere Antwort, die ich kenne, außer einer UDF, die PARSENAME-Funktion zu entführen:

SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2) 

PARSENAME nimmt einen String und teilt ihn am Punkt-Zeichen. Es nimmt eine Zahl als zweites Argument, und diese Zahl gibt an, welches Segment des Strings zurückgegeben werden soll (von hinten nach vorne).

SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3)  --return Hello

Offensichtliches Problem ist, wenn die Zeichenfolge bereits einen Punkt enthält. Ich denke immer noch, dass die Verwendung einer UDF der beste Weg ist ... irgendwelche anderen Vorschläge?