我正在使用 .Net 2013,我相信它与 SQL Server 版本一起打包。
编辑: 我知道这个例子很奇怪,它只是说明我在解决这个问题时遇到的一个问题
编辑 2:
我的预期结果显然不是人们所期望的,所以添加到底部。对困惑感到抱歉。
希望最终编辑 我将表格从 Hello World 的变体更改为 Bacon & Eggs。在阅读了几次以确保我非常清楚问题是什么之后,我开始眼花缭乱了。将源数据更改为更清晰。问题依然存在。我检查了。
我有两张桌子。一个包含字符串。一个包含要替换的字符串,以及它的替换。
*String Table*
Bacon
Eggs
Bacon & Eggs
Eggs & Bacon
*Replacement Table*
Bacon Pork
Eggs Poultry
然后我有一个执行交叉连接来执行替换的视图,但它不能正常工作。这让我很困惑,因为它似乎只替换了 END 处的字符串。请参阅下面的查询结果。
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 行返回。请参阅上面的链接) (用星号表示的更改)
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
.
对此问题的任何帮助或见解将不胜感激。:)