簡體   English   中英

從SQL Server中以逗號分隔的字符串中提取字符串的一部分

[英]Extract a part of the string from comma separated string in SQL Server

我在SQL Server中有一個varchar字符串:

DECLARE @vStr VARCHAR(MAX) = ';ABC,DEF,+123456789,+987654321,0,0,0,0,0,+987654321,1110:'

對於此字符串,我想要的結果是:

'+123456789,+987654321,0,0,0,0,0,+987654321'

DECLARE @vStr VARCHAR(MAX) = ';PQR,XYZ,+987654321,+987654321,0,0,0,0,0,+9876123456,5555:'

應生成如下結果: +987654321,+987654321,0,0,0,0,0,+9876123456

我正在嘗試用leftlen substring ,但是它不起作用。

更新:

通常,我不希望該逗號分隔的字符串的前兩個部分,而且我也不希望該逗號分隔的字符串的后半部分。

select  result = stuff(item, 1, charindex(',', item, charindex(',', item) + 1), '')
from
(
    -- exclude last item
    select  item = left(@vStr, len(@vStr) - charindex(',', reverse(@vStr)))
) d

交代

  • 內部查詢是排除最后一項。 這是通過使用反轉字符串(reverse()),然后找到逗號“,”,然后使用LEFT()將左邊的部分擴展到最后一個逗號來完成的。

  • 外部查詢上的2 charindex()是找到第二個逗號

  • 然后使用stuff()刪除第二個逗號中的任何內容

你能試試這個嗎

select substring( substring (substring(@vStr,1,len(@vStr)),10,len(@vStr)),0,len(@vStr)-14 )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM