BW的PHP链接可以很好地检查出来,但是如果你想坚持使用SQL,试试这个UDF。给定一个输入字符串,它将它分割到指定的分隔符上,每个项目返回一行。
CREATE FUNCTION dbo.Split(@Input VARCHAR(MAX), @Separator CHAR(1))
RETURNS TABLE
AS RETURN
WITH A AS
(
SELECT 1 AS Sequence, CAST(1 AS BIGINT) AS StartChar, CHARINDEX(@Separator, @Input) AS EndChar
UNION ALL
SELECT Sequence + 1, EndChar + 1, CHARINDEX(@Separator, @Input, EndChar + 1)
FROM A
WHERE EndChar > 0
)
SELECT
Sequence,
SUBSTRING(@Input, StartChar, CASE WHEN EndChar = 0 THEN LEN(@Input) - EndChar ELSE EndChar - StartChar END) AS Value
FROM
A
举例:SELECT * FROM dbo.Split('C:\Dir\File.ext', '\')
回报:
Sequence Value
1 C:
2 Dir
3 File.ext
这不是一个完整的解决方案,但希望这将帮助!
您的第一个问题..您是什么意思? – gbn 2011-02-07 20:21:46
您的预期结果不清楚。你能改述你在找什么吗? – 2011-02-07 20:22:21