Wie zerstückle ich einen String?

Hallo,

ich würde gern aus http://www.google.de
google.de machen. ICh brauche nur die letzten beiden Teile der URL also von hinten bis zum 2. Punkt der URL. Ich weiß aber nicht, wie ich das mit T-SQL machen kann.
Bin neu im umgang damit.

danke

Hi,

wenn du mit ms-sql hantierst, sollte folgendes funktionieren:

/*******/
declare @strUrl as varchar(255)
set @strUrl = ‚http://www.google.de
select
/*domain:*/
reverse(
left(
reverse(
substring(
@strUrl
,1
, len(@strUrl)-(len( reverse( left( reverse(@strUrl) , charindex( ‚.‘, reverse(@strUrl)) ))))
)
)
,charindex( ‚.‘, reverse(
substring(
@strUrl
,1
, len(@strUrl)-(len( reverse( left( reverse(@strUrl) , charindex( ‚.‘, reverse(@strUrl)) ))))
)))
-1)
)

/*Endung:*/

  • reverse( left( reverse(@strUrl) , charindex( ‚.‘, reverse(@strUrl)) ))
    /*******/

Statt der Variablen kann natürlich auch eine Spalte genommen werden :wink:

Inwieweit dies aber mit anderen SQL-Dialekten geht, kann ich dir leider nicht sagen. U.U. musst du dies dann nachbauen.

Wenn du mit Schleifen arbeiten kannst, also wenn es nicht eine eigentliche „Abfrage“ sein muss, kannst du auch die Anzahl der „.“ im string zählen und auf diese Art und Weise vorgehen.
Hierzu Vergleich der len() des Originalstrings mit len() von replace( TEXT,’.’,’’) => Anzahl ‚.‘
In Schleifendurchläufen kannst du dann alle ‚.‘, bis auf den letzten, ersetzen. (u.U. mit jeweils einem anderen Zeichen, um den string dann dort zu trennen)

Schau dir mal die Textfunktionen von sql an, wahrscheinlich bekommst du dann Ideen, wie man noch vorgehen kann.

Viele Grüße, Volker

ich würde gern aus http://www.google.de
google.de machen. ICh brauche nur die letzten beiden Teile der
URL also von hinten bis zum 2. Punkt der URL. Ich weiß aber
nicht, wie ich das mit T-SQL machen kann.
Bin neu im umgang damit.