試試這個:
Declare @stringToSplit varchar(max)='date=10/10/2000|age=13^date=01/01/2001|age=12^date=02/02/2005|age=8^date=10/10/2000|age=13^date=01/01/2001|age=12^date=02/02/2005|age=8^date=10/10/2000|age=13^date=01/01/2001|age=12^date=02/02/2005|age=8^date=10/10/2000|age=13^date=01/01/2001|age=12^date=02/02/2005|age=8'
DECLARE @YourTable table (RowID int, Layout varchar(max))
INSERT @YourTable VALUES (1,@stringToSplit)
;WITH SplitSting AS
(
SELECT
RowID,LEFT(Layout,CHARINDEX('^',Layout)-1) AS Part
,RIGHT(Layout,LEN(Layout)-CHARINDEX('^',Layout)) AS Remainder
FROM @YourTable
WHERE Layout IS NOT NULL AND CHARINDEX('^',Layout)>0
UNION ALL
SELECT
RowID,LEFT(Remainder,CHARINDEX('^',Remainder)-1)
,RIGHT(Remainder,LEN(Remainder)-CHARINDEX('^',Remainder))
FROM SplitSting
WHERE Remainder IS NOT NULL AND CHARINDEX('^',Remainder)>0
UNION ALL
SELECT
RowID,Remainder,null
FROM SplitSting
WHERE Remainder IS NOT NULL AND CHARINDEX('^',Remainder)=0
)
select SUBSTRING(part,CHARINDEX('=',part)+1,(CHARINDEX('|',part)-CHARINDEX('=',part))-1) as [Date],RIGHT(part,CHARINDEX('=',reverse(part))-1) as [Age] from SplitSting
只是一個建議 - 在Web /控制器上捕獲字符串,爲您的數據編寫一個解析器,即一個具有日期,年齡或其他屬性的對象,創建此對象的集合並使用批量插入到數據庫。 –
此外字符串來自一個Web服務 - 有什麼辦法格式化爲JSon對象 - http://msdn.microsoft.com/en-us/library/bb299886.aspx –
嘿讓讓它很簡單,沒有我認爲需要JSON ... – RachitSharma