如何在SQL Server LIKE子句中使用特殊字符

时间:2013-07-11 12:24:47

标签: sql sql-server special-characters sql-like

我有一张表格,其中我希望得到类似ab aabb aaabbb ......的字符串n次,然后是b次,如下所示。

例如表:

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

我希望结果TABLE为:

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

我试过这样的

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

但它返回零行。

有人可以帮我了解如何在SQL Server LIKE中使用特殊字符吗?

1 个答案:

答案 0 :(得分: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长度并使用它来复制前面所需的空格

DEMO (编辑后)