我有一個很大的字符串值,我正在尋找放入數據庫。我有當前的代碼來做到這一點。在字符串SQL服務器中的兩個字符之間選擇值
DECLARE @Value NVARCHAR(max) = {status}
DECLARE @DYVALUE TABLE (VALUE NVARCHAR(MAX))
INSERT INTO @DYVALUE (value)
SELECT @VALUE
;WITH cte
AS (
SELECT Split.a.value('.', 'VARCHAR(1000)') AS Value
FROM (
SELECT CAST('<S>' + REPLACE(Value, ',', '</S><S>') + '</S>' AS XML) AS Value
FROM @DyValue
) AS A
CROSS APPLY Value.nodes('/S') AS Split(a)
)
insert into mytable
SELECT *
FROM (
SELECT replace(LTRIM(SUBSTRING(Value, 0, CHARINDEX('|', value))),' ','') AS col1
,SUBSTRING(Value, CHARINDEX('|', Value) + 1, LEN(Value)) AS [col2]
,SUBSTRING(Value, CHARINDEX('/', Value) + 1, LEN(Value)) AS [col3]
FROM Cte
) dt
這使我可以放置之前的一切|到第一列,以及第三列之後的所有內容。 我需要嘗試將所有內容放在值'|'之間和「/」成列2
我掙扎着爬
,SUBSTRING(Value, CHARINDEX('|', Value) + 1, LEN(Value)) AS [col2]
到只需要兩個字符之間的值。
字符串類型的例子這將是上運行的是
1234567890 |再見殘酷的世界/我應該在第3欄第2345678901 |再見殘酷的世界/我應該在第3欄第3456789012 |再見殘忍的世界/請把我置於第3欄,3456789012 |再見殘酷的世界/請把我置於第3欄,6324589657 | Hello World /我需要在Col 3,1145698763 |再見殘酷的世界/我應該在第3欄,36985214728 |再見殘酷的世界/我應該在第3列,7412589635 |再見殘酷的世界/我應該在列3,7412589635 |再見殘酷的世界/我應該在列3,6398756951 |請幫助我/請把我放進第3欄,
該字符串將採用該格式,我剛將這些值更改爲稍微有趣的值。
任何幫助將不勝感激。
使用 的Microsoft SQL Server 2012(SP3)
我希望它永遠是三個詞,詞的數量會有所不同抱歉。 – Phil
@菲爾 - 這是一個例子..現在檢查 –
類似於上面的答案,我得到錯誤 「無效的長度參數傳遞給左或SUBSTRING函數」 當試圖運行此 – Phil