我正在尝试更新和替换数据的字符串值:
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%'
此查询工作正常,之后,我能够看到更改,但反过来却看不到。
答案 0 :(得分:4)
如果您想以USA
开始查找记录,则将使用LIKE 'USA%'
,如果该片段在文本中,则需要{{1} }。
但是LIKE '%USA%'
函数不使用模式。它将找到您完全传入 的字符串,并将其替换为第二个字符串。如果您的值不包含字符串“美国%” (包括REPLACE()
!),则不会替换任何内容...
尝试一下(注意真实数据)
%
与美国 开始的任何行都将得到处理。
注意: 美国的任何出现(字符串中的任何地方)都将替换为 US-