UPDATE和REPLACE查询

时间:2019-02-28 16:46:30

标签: sql-server

我正在尝试更新和替换数据的字符串值:

UPDATE STGOrderDetail
SET [Order ID] = REPLACE([Order ID],'USA%','US-%')
WHERE [Ship Mode] LIKE 'Standard Class'
AND [Order ID] LIKE 'USA%'

没有错误,但是随后,当我检查数据时,什么都没有改变。但是尝试了另一列:

UPDATE STGOrderDetail
SET [Ship Mode] = REPLACE([Ship Mode],'Std Class','Standard Class')
WHERE [Ship Mode] LIKE 'Std Class'
AND [Order ID] LIKE 'USA%'

此查询工作正常,之后,我能够看到更改,但反过来却看不到。

1 个答案:

答案 0 :(得分:4)

如果您想以USA开始查找记录,则将使用LIKE 'USA%',如果该片段在文本中,则需要{{1} }。

但是LIKE '%USA%'函数不使用模式。它将找到您完全传入 的字符串,并将其替换为第二个字符串。如果您的值不包含字符串“美国%” (包括REPLACE()!),则不会替换任何内容...

尝试一下(注意真实数据)

%

美国 开始的任何行都将得到处理。
注意: 美国的任何出现(字符串中的任何地方)都将替换为 US-