SQL更新列两次
我在表(Tab1)中有一个字符串列(Col1)。我想编写一个脚本,从字符串值中删除SQL更新列两次,sql,sql-update,Sql,Sql Update,我在表(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 =
'%'
或'&'字符
为此选择的选项如下:
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 '%[%]%'
这似乎正确吗?如果是,我将如何将其转换为任何update语句?我尝试了以下方法:
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 '%[%]%'
这不起作用,因为您不能在集中更新列两次。
我还有别的办法吗?我知道我可能在做些傻事,所以为我的无知道歉
提前谢谢。这应该行得通。Replace返回一个字符串,您可以再次将该字符串传递给另一个Replace函数
UPDATE Tab1
SET Tab1.Col1 = REPLACE(REPLACE( Tab1.Col1, '&', ''), '%', '')
FROM Table1 Tab1
WHERE Tab1.Col1 like '%[&]%' OR Tab1.Col1 like '%[%]%'
这应该行得通。Replace返回一个字符串,您可以再次将该字符串传递给另一个Replace函数
UPDATE Tab1
SET Tab1.Col1 = REPLACE(REPLACE( Tab1.Col1, '&', ''), '%', '')
FROM Table1 Tab1
WHERE Tab1.Col1 like '%[&]%' OR Tab1.Col1 like '%[%]%'
由于您没有说明使用的是什么RDBMS,因此我避免使用明显不可移植的东西:
UPDATE Tab1
SET Tab1.Col1 = REPLACE(REPLACE(Tab1.Col1, '&', ''), '%', '')
WHERE Tab1.Col1 <> REPLACE(REPLACE(Tab1.Col1, '&', ''), '%', '');
更新Tab1
设置Tab1.Col1=REPLACE(REPLACE(Tab1.Col1,,,,,,,,,,,,,,,)
其中,Tab1.Col1替换(替换(Tab1.Col1,,,,,,,,,,,);
由于您没有说明您使用的是什么RDBMS,因此我避免使用明显不可移植的东西:
UPDATE Tab1
SET Tab1.Col1 = REPLACE(REPLACE(Tab1.Col1, '&', ''), '%', '')
WHERE Tab1.Col1 <> REPLACE(REPLACE(Tab1.Col1, '&', ''), '%', '');
更新Tab1
设置Tab1.Col1=REPLACE(REPLACE(Tab1.Col1,,,,,,,,,,,,,,,)
其中,Tab1.Col1替换(替换(Tab1.Col1,,,,,,,,,,,);
“我在避免那些明显不可移植的东西”——呃,标准SQL使用
而不是=
@onedaywhen'SQL Standard'Portable'但你是:)“我在避免明显不可移植的东西”——呃,Standard SQL使用
而不是=代码>@onedaywhen'SQL Standard'Portable'但您是:)