Thấy có nhiều bạn thắc mắc về việc cắt chuỗi trong sql nên mình chia sẻ.
Hàm này được sử dụng cho các công việc cắt chuỗi mà các bạn muốn. Hàm này mình có chỉnh sửa lại từ 1 code trên mạng (k rõ nguồn vì lâu quá rồi)
Code:
CREATE FUNCTION [dbo].[SplitString]
(
-- Add the parameters for the function here
@myString varchar(500),
@deliminator varchar(10)
)
RETURNS
@ReturnTable TABLE
(
-- Add the column definitions for the TABLE variable here
--[id] [int] IDENTITY(1,1) NOT NULL,
[SplitItem] [varchar](50) NULL
)
AS
BEGIN
Declare @iSpaces INT
Declare @part varchar(50)
--initialize spaces
Select @iSpaces = charindex(@deliminator,@myString,0)
While @iSpaces > 0
BEGIN
Select @part = substring(@myString,0,charindex(@deliminator,@myString,0))
Insert Into @ReturnTable(SplitItem)
Select @part
Select @myString = substring(@mystring,charindex(@deliminator,@myString,0)+ len(@deliminator),len(@myString) - charindex(' ',@myString,0))
Select @iSpaces = charindex(@deliminator,@myString,0)
END
If len(@myString) > 0
Insert Into @ReturnTable
Select @myString
RETURN
END
Tham số truyền vào: Chuỗi cần cắt và ký tự phân cách. Ví dụ:
Code:
SELECT * FROM SplitString('1,2,3', ',')
Kết quả: