表格(Tab1)中有一个字符串列(Col1)。我想写一个删除'%'
或'&'的脚本字符串值中的字符。
选择此项如下:
SELECT REPLACE( Tab1.Col1, '&', ''),
REPLACE(Tab1.Col1, '%', '')
FROM Table1 Tab1
WHERE Tab1.Col1 like '%[&]%'
OR Tab1.Col1 like '%[%]%'
这看起来是否正确?如果是这样我将如何将其转换为任何更新语句?我尝试了以下方法:
UPDATE Tab1
SET Tab1.Col1 = REPLACE( Tab1.Col1, '&', ''),
Tab1.Col1 = REPLACE (Tab1.Col1, '%', '')
FROM Table1 Tab1
WHERE Tab1.Col1 like '%[&]%'
OR Tab1.Col1 like '%[%]%'
这不起作用,因为您无法在SET
中两次更新列。
有没有其他方法可以做到这一点?我知道我可能在这里做些傻事,为我的无知道歉。
提前致谢。
答案 0 :(得分:5)
这应该有效。 Replace返回一个字符串,您可以再次将其传递给另一个替换函数。
UPDATE Tab1
SET Tab1.Col1 = REPLACE(REPLACE( Tab1.Col1, '&', ''), '%', '')
FROM Table1 Tab1
WHERE Tab1.Col1 like '%[&]%' OR Tab1.Col1 like '%[%]%'
答案 1 :(得分:1)
UPDATE Tab1
SET Tab1.Col1 = REPLACE(REPLACE( Tab1.Col1, '&', ''), '%', '')
FROM Table1 Tab1
WHERE Tab1.Col1 like '%[&]%'
OR Tab1.Col1 like '%[%]%'
答案 2 :(得分:0)
由于您没有说明您使用的是哪种RDBMS,因此我避免使用明显不可移植的内容:
UPDATE Tab1
SET Tab1.Col1 = REPLACE(REPLACE(Tab1.Col1, '&', ''), '%', '')
WHERE Tab1.Col1 <> REPLACE(REPLACE(Tab1.Col1, '&', ''), '%', '');