Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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 Server_Sql Server 2005_Tsql - Fatal编程技术网

如何在SQL中更新多列?

如何在SQL中更新多列?,sql,sql-server,sql-server-2005,tsql,Sql,Sql Server,Sql Server 2005,Tsql,我的sql知识非常简单,我需要您的帮助来编写sql更新查询。我想更新其中workorder=12300000column1.TrimStart(B7CL).Addto(column2)。但在SQL Server 2005中如何实现这一点请查看以下内容: 转换此表 到这张桌子 像这样的怎么样 UPDATE Table SET Column2 = REPLACE(Column1,'B7CL-','') WHERE Column2 ISNULL 或者使用where子句 UPDATE Table S

我的sql知识非常简单,我需要您的帮助来编写sql更新查询。我想更新
其中workorder=12300000
column1.TrimStart(B7CL).Addto(column2)。但在SQL Server 2005中如何实现这一点请查看以下内容:

转换此表 到这张桌子
像这样的怎么样

UPDATE Table
SET Column2 = REPLACE(Column1,'B7CL-','')
WHERE Column2 ISNULL
或者使用where子句

UPDATE Table 
SET Column2 = REPLACE(Column1,'B7CL-','') 
WHERE Column2 ISNULL
AND workorder=12300000
尝试以下方法:

UPDATE dbo.YourTable
SET column2 = SUBSTRING(column1, 6, 12)
WHERE column2 IS NULL
或者,如果您想应用WHERE子句(您提到的):


但是,您的示例似乎没有使用WHERE子句……

存在某种风险,即如果
B7CL-
字符串出现在
列1
中的其他位置,而不仅仅是开始,则此语句将删除该情况,并且存在该字符串根本不存在的风险,甚至你在回答中建议的12个字符更短…@Dan-谢谢Dan,错过了这一点。@Dan Grossman:是的,这是OP在问题中要求的,但他的样本似乎不支持这一点-非常混乱…..这是一个更好的答案,因为即使前5个字符不同,它也会起作用。他们没有;样本中没有,但可能在其他数据中或将来。
 Update Table
    Set Column2 = Replace(Column1, 'B7CL-','')
    Where Column2 Is Null
    AND workorder=12300000
UPDATE dbo.YourTable
SET column2 = SUBSTRING(column1, 6, 12)
WHERE column2 IS NULL
UPDATE dbo.YourTable
SET column2 = SUBSTRING(column1, 6, 12)
WHERE workorder = 12300000
 Update Table
    Set Column2 = Replace(Column1, 'B7CL-','')
    Where Column2 Is Null
    AND workorder=12300000