用于解析多个分隔id的SQL函数';s(仅限前导分隔符)并替换为表中的文本
我在表中有一个varchar列,其中包含以下形式的值:用于解析多个分隔id的SQL函数';s(仅限前导分隔符)并替换为表中的文本,sql,sql-server,Sql,Sql Server,我在表中有一个varchar列,其中包含以下形式的值: case when @62159 >= @62160 then 1 when @62160 <= 0 or (@62159 <0) then 0 else @62159 / @62160 end 我认为假设尾随分隔符是一个空格是“相当”安全的,但如果在@后面找到第一个非数字字符,则终止可能更安全 目前,我一点也不关心性能,但我想我最终会考虑到这一点 我们将在其中检索@EntityID值的实体表: ENTIT
case
when @62159 >= @62160 then 1
when @62160 <= 0 or (@62159 <0) then 0
else @62159 / @62160
end
我认为假设尾随分隔符是一个空格是“相当”安全的,但如果在@后面找到第一个非数字字符,则终止可能更安全
目前,我一点也不关心性能,但我想我最终会考虑到这一点
我们将在其中检索@EntityID值的实体表:
ENTITY
-------------------------------------
EntityID | EntityName
-------------------------------------
62160 | Entity Friendly Name 0
62161 | Entity Friendly Name 2
62162 | Entity Friendly Name 3
62163 | Entity Friendly Name 4
62164 | Entity Friendly Name 5
62165 | Entity Friendly Name 6
所以
@62160 blah blah blah @62161 yada yada yada @62162
…将返回为:
[Entity Friendly Name 0] blah blah blah [Entity Friendly Name 2] yada yada yada [Entity Friendly Name 3]
(在上面的示例中,为了清晰起见,我在已解析的名称周围添加了一些分隔符。)您让我们处于极端劣势。我们不知道您的项目、表格或数据是什么样子的。如果没有一些细节,你请求帮助就没有多大意义。你的案例表达让我完全不知所措。那些应该是弦吗?变量?值?@SeanLange抱歉,我添加了一个示例进行澄清。那么您是说您将在字符串中使用替换标记,并希望用表中的值替换这些标记?现在还不清楚您想做什么,但我想您想传递一个字符串,如“@62160布拉布拉布拉@62161 yada yada yada@62162”,作为您的输入?是的,这正是我想做的,用相应的[EntityName]替换\@EntityIdValue,对于整个字符串中的所有\@EntityID实例。真恶心,这太恶心了。到目前为止你试过什么?这将需要一些严重的丑陋。您首先必须将其分解为多个部分。然后,针对每件物品,查看是否找到替换值。如果存在,则使用替换值替换令牌。这在编程语言中比在sql中容易得多,但这是可能的……只是很难看,而且可能相当慢。
[Entity Friendly Name 0] blah blah blah [Entity Friendly Name 2] yada yada yada [Entity Friendly Name 3]