PHP-ссылку BW было бы неплохо проверить, но если вы хотите придерживаться 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
комплексное решение, но, надеюсь, оно поможет!