내가 가진 SplitDictionary
기능 :분할 문자열
ALTER FUNCTION [dbo].[SplitDictionary]
(
@RowKey NVARCHAR(MAX),
@RowData NVARCHAR(MAX),
@Delimeter NVARCHAR(2)
)
RETURNS @RtnValue TABLE
(
ID INT IDENTITY(1,1),
keyValue nvarchar(max),
Data NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @Iterator INT
SET @Iterator = 1
DECLARE @FoundIndex INT
SET @FoundIndex = CHARINDEX(@Delimeter,@RowData)
declare @keyFoundIndex int
set @keyFoundIndex=charindex(@Delimeter, @RowKey)
WHILE (@FoundIndex>0)
BEGIN
INSERT INTO @RtnValue (keyValue, data)
SELECT KeyValue=LTRIM(RTRIM(SUBSTRING(@RowKey, 1, @FoundIndex - 1))),
Data = LTRIM(RTRIM(SUBSTRING(@RowData, 1, @FoundIndex - 1)))
SET @RowKey=substring(@RowKey, @FoundIndex + datalength(@Delimeter)/2, len(@RowKey))
SET @RowData = SUBSTRING(@RowData,@FoundIndex + DATALENGTH(@Delimeter)/2,LEN(@RowData))
SET @Iterator = @Iterator + 1
SET @FoundIndex = CHARINDEX(@Delimeter, @RowData)
END
INSERT INTO @RtnValue (keyValue, Data)
SELECT keyValue=ltrim(rtrim(@RowKey)), Data = LTRIM(RTRIM(@RowData))
RETURN
END
I이 기능을 사용하는 경우 :
SELECT ID, keyValue, Data from dbo.SplitDictionary('10,1','20,30', ',')
결과이다
1 10 20
을그건 사실이야
나는이 기능을 사용하는 경우 :
SELECT ID, keyValue, Data from dbo.SplitDictionary('1,1','20,30', ',')
결과는 다음과 같습니다
1 일, 20
2 empthy 30
을허위입니다
저장 프로 시저에서 두 번째 호출을 수정하는 방법은 무엇입니까?
아이디어보다, 나는 그것을 사용합니다 ... – loviji