Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL更新列两次_Sql_Sql Update - Fatal编程技术网

SQL更新列两次

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 =

我在表(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'但您是:)