1

我有一个表,我想在其中获取类似于ab aabb aaabbb ......一个次后跟 bn 次的字符串,如下所示。

例如表:

  value 
---------- 
   ab
   aabb
   aaabbb
   aaaabbbb
   1
   1a
   abababa

我希望结果表是:

 value    
---------- 
ab
aabb
aaabbb
aaaabbbb

我试过这样

select * from [NumTest] where value LIKE '[a]+[b]+'

但它返回零行。

谁能帮助我如何在 SQL Server 中使用特殊字符LIKE

4

1 回答 1

2

这是可以工作的东西:

(编辑 - 在 O/P 评论之后,不需要评论的部分)

--WITH CTE_GoodValues AS 
--(
    SELECT value
    FROM Table1
    WHERE LEFT(VALUE,LEN(VALUE)/2) = REPLICATE('a',LEN(VALUE)/2)
        AND RIGHT(VALUE,LEN(VALUE)/2) = REPLICATE('b',LEN(VALUE)/2)
        AND LEN(VALUE)%2=0
--)
--SELECT REPLICATE(' ', (SELECT MAX(LEN(VALUE))/2 FROM CTE_GoodValues)- LEN(VALUE)/2) + VALUE
--FROM CTE_GoodValues

在 CTE 中 - 选择左半部分全a-s 和右半部分全b-s 的值。然后找到 MAX 长度并用它来复制前面需要的空格

演示(编辑后)

于 2013-07-11T12:59:28.973 回答