Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于解析多个分隔id的SQL函数';s(仅限前导分隔符)并替换为表中的文本_Sql_Sql Server - Fatal编程技术网

用于解析多个分隔id的SQL函数';s(仅限前导分隔符)并替换为表中的文本

用于解析多个分隔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

我在表中有一个varchar列,其中包含以下形式的值:

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]