1

ab aabb aaabbb ......以下に示すように、a 回の後に bn 回が続くような文字列を取得したいテーブルがあります。

例:

  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か?

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- で右半分がすべて- の値を選択しますb。次に、最大の長さを見つけて、それを使用して前に必要な空きスペースを複製します

デモ(編集後)

于 2013-07-11T12:59:28.973 に答える