我有一个在列中有用户名的表。这是一个例子
| **Path**
| /test/path/Barry/home
| /test/path/Jenny/home
| /test/path/Jermehiam/home/Docs
| /test/path/Sarah/home/Docs
我不确定如何只更新以'home'结尾的路径部分。我需要保留路径的其他部分,因为我要替换的字符串是环境变量。所以最终的结果是:
| **Path**
| ${PATH}
| ${PATH}
| ${PATH}/Docs
| ${PATH}/Docs
任何帮助将不胜感激
答案 0 :(得分:0)
你可以这样做:
UPDATE PathTable
SET Path = '...'
WHERE Path LIKE '/test/path/%/home'
UPDATE PathTable
SET Path = '.../Docs'
WHERE Path LIKE '/test/path/%/home/Docs'
答案 1 :(得分:0)
如果您使用的是SQL-Server,可以使用CHARINDEX(),SUBSTRING()和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
在Oracle中,您可以使用INSTR(),SUBSTR()和LENGTH()
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
结果
url
**Path**
${PATH}
${PATH}
${PATH}/Docs
${PATH}/Docs