增加值我有一個表數據的幾行是這樣的:從Col1
分割字符串和
16 W:\2-Work\ALBO\00_Proposal\ALxO_Amendement #1_20091022_signed.pdf
17 W:\2-Work\ALBO\00_Proposal\Level1\ALBO_Amendment #1_20110418.docx
18 W:\2-Work\ALBO\00_Proposal\A\BR\T\X_#1_20110418_final.docx
19 W:\2-Work\ALBO\MyOptionl\AO_Amendment_2 August 2013.docx
我創建列Col10
我想每個值分開與分隔符'\'
的想法是對每列:
Col1 | Col2 | Col3 | Col4 | Col5 |etc...
W: 2-Work ALBO 00_Proposal ALxO_Amendement #1_20091022_signed.pdf
我知道如何使用charindex
和substring
,但'\'的數量在每行(8500行)上不同。
你能幫我嗎?
我使用Microsoft SQL Server 2012
非常感謝您
編輯2014年6月24日
我的目標是生成的完整路徑和分離路徑的XML。
其實,這裏是我的想法:
1 - 識別所有的ID在一個臨時表做循環
- 評申報表UNE節奏 申報表@IdTable( ID INT, SRC爲nvarchar(MAX))
- 談injecte TOUS LES ID existant德拉表 INSERT INTO @IdTable(ID,SRC) 選擇ID,從樺林
SRC--on聲明L'ID德首張烯commencant帕樂加微型 聲明@id INT =(從選擇分鐘ALBO(ID))
--Tnat qu'il reste DES ID上繼續拉仿羔皮呢 而@id不是null 從@IdTable開始
打印@Id 選擇@id =分鐘(ID),其中ID> @id 端 --Fin德拉仿羔皮呢DES ID
2 - 分割每行和更新列(Colx => Clolumns之前已經創建) This code shoul d放入我之前的循環中。
聲明@products varchar(max)='W:\ 2-Work \ ALBO \ 13_WP Reporting \ 13_07_Monthly reports \ 13_07_01 Archives \ 2012 \ 201211 \ Draft \ ALBO-MR-201211 \ gp_scripts \ v1 \ Top10_duree_final。TXT」 聲明@individual VARCHAR(最大)= NULL
WHILE LEN(@products)> 0 BEGIN IF PATINDEX( '%\%',@產品)> 0 BEGIN SET = @individual SUBSTRING( @products,0,PATINDEX( '%\%',@品)) 選擇@individual - 我必須做出和更新與ID
SET @products = SUBSTRING(@products, LEN(@individual + '\') + 1,
LEN(@products))
END
ELSE
BEGIN
SET @individual = @products
SET @products = NULL
print @individual
END
END
這是不一個好的桌子設計。你想做什麼? –
您可以通過「\」創建一個函數來分割數據,併爲每一行返回一個表格,然後使用分割函數中的插入語句將col1中的表格插入到col10中。嘗試編寫代碼來實現上述內容,以免遇到我們在這裏的問題! :) – Murtaza
你是不是隻是用''替換'\'? –