如何在sql中的两个特殊字符之间提取特定字符串

时间:2015-09-01 16:53:11

标签: sql

如何编写TSQL脚本以从“,23045,23178,80978”中获取“23045”。 感谢。

1 个答案:

答案 0 :(得分:0)

以下是快速分割这些值的方法。如果您愿意,可以将该数据放入临时表中,如果您想进一步过滤。我已经注释掉了你的字符串上匹配的额外AND子句,以便你可以看到完整的列表

-- Drop counter table if it exists
IF OBJECT_ID('dbo.Results', 'U') IS NOT NULL DROP TABLE dbo.Results; 

-- Create a counter
SELECT TOP 1000 
IDENTITY(INT,1,1) AS N  
INTO dbo.Results
FROM Master.dbo.SysColumns sc1,       
Master.dbo.SysColumns sc2     

DECLARE @Test AS VARCHAR(100)
SET @Test = ',23045,23178,80978,'

-- Split the data
SELECT SUBSTRING(@Test,N+1,CHARINDEX(',',@Test,N+1)-N-1) AS 'Result' 
FROM dbo.Results
WHERE N < LEN(@Test)   
AND SUBSTRING(@Test,N,1) = ','
--AND SUBSTRING(@Test,N+1,CHARINDEX(',',@Test,N+1)-N-1) = '23045'