1
我有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
當我使用此功能:
SELECT ID, keyValue, Data from dbo.SplitDictionary('10,1','20,30', ',')
結果是:
這是真的
當我使用此功能:
SELECT ID, keyValue, Data from dbo.SplitDictionary('1,1','20,30', ',')
結果是:
11,20
2 empthy 30
它是假的
如何修復存儲過程中的第二次調用?
thans的想法,我會用它來...... – loviji 2012-04-13 11:14:09