我使用的.Net 2013,我相信来包装的一个版本的SQL Server。
编辑:我理解的例子是相当奇怪的,它只是在工作时出了一项决议,我遇到了一个问题的说明这个问题
编辑2:
我预期的结果显然不是人们所期待,因此增加了底部。 对困惑感到抱歉。
希望最终编辑我从培根和鸡蛋的Hello World的变化改变了表。 这种读几次,以确保后,我对这个问题是什么,我会斗鸡眼很清楚。 改变了源数据要更加清晰可辨。 问题仍然存在。 我检查了。
我有两个表。 其中含有的字符串。 要被替换包含字符串之一,以及其置换。
*String Table*
Bacon
Eggs
Bacon & Eggs
Eggs & Bacon
*Replacement Table*
Bacon Pork
Eggs Poultry
然后,我有一个观点,即不交叉联接进行更换,但它不能正常工作。 这我感到困惑,因为它似乎只替换在结束的字符串。 请参阅下面的查询结果。
SELECT InitialString, ReplacementTarget, ReplacementValue,
REPLACE(InitialString, ReplacementTarget, ReplacementValue)
AS ReplacedString
FROM StringTable CROSS JOIN ReplacementTable
请注意,只有文本的最后一半被替换。 它不象第一置换而成,然后停止。 这至少将使意义。 这是字面上像更换没有验证的某些原因。
查询的结果 (问题标有星号)
InitialString ReplaceTarget ReplaceValue ReplacedString
Bacon Bacon Pork Pork
Eggs Bacon Pork Eggs
Bacon & Eggs Bacon Pork Bacon* & Eggs
Eggs & Bacon Bacon Pork Eggs & Pork
Bacon Eggs Poultry Bacon
Eggs Eggs Poultry Poultry
Bacon & Eggs Eggs Poultry Bacon & Poultry
Eggs & Bacon Eggs Poultry Eggs* & Bacon
。 预期结果(是,我想8个ROWS BACK。SEE LINK ABOVE)(星号表示的变化)
InitialString ReplaceTarget ReplaceValue ReplacedString
Bacon Bacon Pork Pork
Eggs Bacon Pork Eggs
Bacon & Eggs Bacon Pork Pork* & Eggs
Eggs & Bacon Bacon Pork Eggs & Pork
Bacon Eggs Poultry Bacon
Eggs Eggs Poultry Poultry
Bacon & Eggs Eggs Poultry Bacon & Poultry
Eggs & Bacon Eggs Poultry Poultry* & Bacon
。
任何帮助或洞察到这一问题将不胜感激。 :)