SQL选择获取两个特殊字符之间的字符串

时间:2016-01-18 07:37:36

标签: sql sql-server-2008 stored-procedures

我有ABC_DEF_123,DEF_GHI_345,GHI_JKL_678等数据 我需要选择123,345,678(即)“,”和“”之间 如何在“,”和最后“”之间进行选择 数据不是静态数据。 帮帮我... 提前致谢

2 个答案:

答案 0 :(得分:1)

尝试下面的代码,尝试在函数

中包含下面的代码
DECLARE @string NVARCHAR(MAX)='ABC_DEF_123,DEF_GHI_345,GHI_JKL_678'
DECLARE @delimiter CHAR(1)=','
DECLARE @output TABLE(splitdata NVARCHAR(MAX) )
BEGIN 
DECLARE @start INT, @end INT 
SELECT @start = 1, @end = CHARINDEX(@delimiter, @string) 
WHILE @start < LEN(@string) + 1 BEGIN 
    IF @end = 0  
        SET @end = LEN(@string) + 1

    INSERT INTO @output (splitdata)  
    VALUES(SUBSTRING(@string, @start, @end - @start)) 
    SET @start = @end + 1 
    SET @end = CHARINDEX(@delimiter, @string, @start)

END 
--
DECLARE @values NVARCHAR(max)=''
SELECT @values=RIGHT(splitdata,3)+','+@values FROM @output ORDER BY splitdata DESC

SELECT  (SUBSTRING(@values,0,LEN(@values))) 
END

答案 1 :(得分:0)

尝试以下可能对您有帮助的脚本

选择正确(&#39; ABC_DEF_123&#39;,3)作为DataValue

选择子字符串(&#39; ABC_DEF_123&#39;,patindex(&#39;%[0-9]%&#39;,&#39; ABC_DEF_123&#39;),len(&#39; ABC_DEF_123& #39))