如何编写TSQL脚本以从“,23045,23178,80978”中获取“23045”。 感谢。
答案 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'