如何在SQL中更新多列?
我的sql知识非常简单,我需要您的帮助来编写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
其中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