2

我有以下示例数据和到目前为止我尝试过的查询 -

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;

我想选择 ^. MESSAGE1所以在这种情况下,我的输出应该是MESSAGE2

4

1 回答 1

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
于 2015-09-01T16:20:17.800 回答