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