【发布时间】:2017-02-26 17:38:21
【问题描述】:
我有一个名为“公式”的文本字符串列,其中变量用 ID 编码并设置在括号中,括号中的文本长度可以变化,这种括号的数量实际上是无限的。数据示例:
[a=5;b=1;c=15][x=1;a=5;b=1;c=15]*[a=4;c=2]=IF([a=10232937;c=227634]=1;[a=2;b=51;d=14]*[a=1;b=51;d=14];0)
我寻找a 和c 的特定组合,比如:
Select Formula FROM Table WHERE Formula LIKE "%a=5%c=2%"
结果将是[x=1;a=5;b=1;c=15]*[a=4;c=2],尽管在这种情况下a=5 和c=2 位于不同的括号中,并且所需的结果实际上是一个空值。
关于如何在任何给定括号内查找的任何想法?
UPD:这是 SQL Server 2014
【问题讨论】:
-
UPD:这是 SQL Server 2014
-
你能解释一下为什么“%a=5%c=2%”没有给你想要的吗?只有在某个括号 [] 内时才需要它吗?
-
解决这个问题的绝对最佳方法是停止在数据库中存储分隔值。这违反了 1NF,处理起来非常痛苦。如果您有一个字符串拆分器,您可以在“]”上拆分它,然后在每个解析集中查找是否存在。这里有几个优秀的分离器。 sqlperformance.com/2012/07/t-sql-queries/split-strings
-
找到一个 TSQL 拆分函数
标签: sql sql-server substring