2017-09-17 2 views
0

Ich habe eine Tabelle, die einen Benutzernamen in der Spalte hat. Dies ist ein BeispielAktualisierung eindeutige Spalte teilweise Zeichenfolge SQL

| **Path**       
| /test/path/Barry/home 
| /test/path/Jenny/home 
| /test/path/Jermehiam/home/Docs 
| /test/path/Sarah/home/Docs 

Ich bin nicht sicher, wie nur den Teil des Wegs zu aktualisieren, die auf ‚Heimat‘ endet. Ich brauche die anderen Teile des Pfades, um zu bleiben, da die Zeichenfolge, die ich ersetze, mit einer Umgebungsvariablen ist. So ist das Endergebnis wäre:

| **Path**       
| ${PATH} 
| ${PATH} 
| ${PATH}/Docs 
| ${PATH}/Docs 

Jede Hilfe wäre

+0

Tag Ihre Frage mit der Datenbank Sie verwenden. –

Antwort

0

geschätzt werden Sie es auf diese Weise tun kann:

UPDATE PathTable 
SET Path = '...' 
WHERE Path LIKE '/test/path/%/home' 

UPDATE PathTable 
SET Path = '.../Docs' 
WHERE Path LIKE '/test/path/%/home/Docs' 
0

, wenn Sie SQL-Server verwenden, können Sie CHARINDEX verwenden (), SUBSTRING() und LEN()

SELECT CASE WHEN CHARINDEX('home',url) = 0 
      THEN url 
      ELSE '${PATH}' + SUBSTRING(url, (CHARINDEX('home',url) + 4), LEN(url) - (CHARINDEX('home',url) + 3)) 
     END url 
    FROM t_link 

in Oracle, können Sie INSTR(), SUBSTR() und Länge() verwenden

SELECT CASE WHEN CHARINDEX('home',url) = 0 
      THEN url 
      ELSE '${PATH}' + SUBSTRING(url, (CHARINDEX('home',url) + 4), LEN(url) - (CHARINDEX('home',url) + 3)) 
     END url 
    FROM t_link 

Ergebnis

url 
**Path**       
${PATH} 
${PATH} 
${PATH}/Docs 
${PATH}/Docs 
+0

Was passiert, wenn ein Benutzer namens 'home' ist? –

Verwandte Themen