【发布时间】:2012-01-30 20:51:48
【问题描述】:
下面的代码我用于 MSSQL 2005,但是当我尝试在 MSSQL 2000 中运行时,我遇到了错误。
Msg 156, Level 15, State 1, Procedure StrSplit, Line 5
Incorrect syntax near the keyword 'WITH'.
Msg 170, Level 15, State 1, Procedure StrSplit, Line 15
Line 15: Incorrect syntax near ')'.
CREATE FUNCTION dbo.StrSplit (@sep char(1), @s varchar(512))
RETURNS table
AS
RETURN (
WITH Pieces(pn, start, stop) AS (
SELECT 1, 1, CHARINDEX(@sep, @s)
UNION ALL
SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
FROM Pieces
WHERE stop > 0
)
SELECT pn,
SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
FROM Pieces
)
提前致谢
【问题讨论】:
标签: sql-server sql-server-2005 sql-server-2000