我有以下示例数据和我迄今为止尝试的查询 -
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
答案 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