我有一张表格,其中我希望得到类似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
中使用特殊字符吗?
答案 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 (编辑后)