1)不要試圖用這些字符串做這樣的操作,你可以通過設計和添加一個新表來規範化數據庫。在這種情況下,你需要一個簡單的選擇:
SELECT Column4
FROM dbo.Table;
2)否則,一個解決方案是這些字符串轉換成XML和使用nodes
和value
XML的方法:
DECLARE @Source NVARCHAR(MAX);
SET @Source =
N'[xxxxxxx||gh||vbh||CAPACITY_CPU||aed]
[qwe34||asdf||qwe||CONNECTIVITY||ghj]
[ertgfy||fgv||yuhjj||ACCESS||rty]
[tyhuj||rtg||qwert||ACCESS||TMW]';
DECLARE @EncodedSource NVARCHAR(MAX);
SET @EncodedSource = (SELECT @source FOR XML PATH(''));
DECLARE @x XML;
SET @x = REPLACE(REPLACE(REPLACE(@EncodedSource, N'[', N'<row> <col>'), N']', N'"</col> </row>'), N'||', N'</col> <col>');
SELECT r.XmlContent.value('(col[1]/text())[1]', 'NVARCHAR(100)') AS Col1,
r.XmlContent.value('(col[4]/text())[1]', 'NVARCHAR(100)') AS Col4
FROM @x.nodes('/row') r(XmlContent);
注意:您需要用正確的數據類型和最大值替換NVARCHAR(length)
。長度。
你在哪裏使用這個? PHP,Java,C#等等? – Hamza
它被標記爲SQL並提及MS SQL Server –
其ms sql服務器 – nitish