有人可以建議一種方式,我可以從SQL Server表中的(&0459&/&0460&)*100
這樣的字符串中提取0459
和0460
?在SQL Server字符串中提取字符串之間的字符串
我應該能夠拉出兩個字符串夾在兩個字符之間。
在此先感謝。
有人可以建議一種方式,我可以從SQL Server表中的(&0459&/&0460&)*100
這樣的字符串中提取0459
和0460
?在SQL Server字符串中提取字符串之間的字符串
我應該能夠拉出兩個字符串夾在兩個字符之間。
在此先感謝。
如果你一定總是有兩對&符號的,你可以提取兩個字符串這樣
declare @s varchar(max) = '(&0459&/&0460&)*100'
declare @first int = charindex('&', @s)
declare @second int = charindex('&', @s, @first+1)
declare @third int = charindex('&', @s, @second+1)
declare @fourth int = charindex('&', @s, @third+1)
select substring(@s, @first+1, @[email protected])
select substring(@s, @third+1, @[email protected])
該解決方案將虎視眈眈「&」之間
;WITH CTE AS
(
SELECT t.c.value('.', 'VARCHAR(2000)') v,
rn = row_number() over (order by (select 1))-1
FROM (
SELECT x = CAST('<t>' +
REPLACE('(&0459&/&0460&)*100', '&', '</t><t>') + '</t>' AS XML)
) a
CROSS APPLY x.nodes('/t') t(c)
)
SELECT v FROM CTE
WHERE rn in (1,3)
結果第1和3TH值:
0459
0460
嗨,感謝您的建議,我也在嘗試您的答案,但它有點複雜。 – VivekDev 2015-03-03 04:55:50
&&也是一個三明治字符串。你會如何避免這種情況? – 2015-03-02 13:25:24
一旦你決定使用什麼規則,你可以使用PatIndex和SubString。 – 2015-03-02 15:21:41