如何在两个相似的字符之间检索值

时间:2015-09-01 16:17:43

标签: sql sql-server substring charindex

我有以下示例数据和我迄今为止尝试的查询 -

DECLARE @X TABLE (TAG VARCHAR(MAX))

INSERT INTO @X 
VALUES ('59D:$%$%$%$%^MESSAGE1^$%$%$%$%'),
       ('59D:--^MESSAGE2^$%$%$%$%')

SELECT * 
FROM @X

SELECT SUBSTRING(TAG,CHARINDEX('^',TAG)+1,LEN(TAG)-CHARINDEX('^',TAG))
FROM @X;

我想选择 ^之间的所有。因此,在这种情况下,我的输出应为MESSAGE1MESSAGE2

1 个答案:

答案 0 :(得分:2)

select 
substring(tag,charindex('^',tag)+1, len(tag) - charindex('^',reverse(tag)) - charindex('^',tag))
from @x

您可能还希望在字符串中小于2 ^时排除案例。在这种情况下,您应该添加where子句

WHERE len(tag) - len(replace(tag,'^','')) >= 2