0

フォルダを分割して行に変換するクエリ SQL Server を作成しました (「\」で区切られています)

例: 私のフォルダは"N:\TESTEA\subTESTEB"もともと. 私の新しいテーブルでは、この値は次のとおりです。行ごとのフォルダー名。

N:

TESTEA

subTESTEB

しかし、行を列に変換する必要があります。列 1 の行 1。列 2 の行 2。等々。

誰がこれに対する解決策を知っていますか? 1 つの問題: このフォルダには複数のレベルがあり、標準のレベルではありません!

私は明確ですか?

以下は私のSQLクエリです(このSQLコードのフォーマットはわかりません!):

DECLARE @ARRAY VARCHAR(8000), @DELIMITADOR VARCHAR(100), @S VARCHAR(8000),@ARRAYFinal VARCHAR(8000)
select sub_folder_path into #sub_folder_path from GROUP_FOLDER_ACCESS
SELECT @DELIMITADOR = '\'
CREATE TABLE ARRAY(ITEM_ARRAY VARCHAR(8000)) 

WHILE (select COUNT(*) from #sub_folder_path) > 0
BEGIN
SELECT @ARRAY = sub_folder_path from #sub_folder_path ORDER BY sub_folder_path
SET @ARRAYFinal = @ARRAY
SET @ARRAY = @ARRAY + @DELIMITADOR 
WHILE LEN(@ARRAY) > 0
BEGIN
   SELECT @S = LTRIM(SUBSTRING(@ARRAY, 1, CHARINDEX(@DELIMITADOR, @ARRAY) - 1))
   INSERT INTO ARRAY (ITEM_ARRAY) VALUES (@S)
   SELECT @ARRAY = SUBSTRING(@ARRAY, CHARINDEX(@DELIMITADOR, @ARRAY) + 1, LEN(@ARRAY))
END
DELETE #sub_folder_path WHERE sub_folder_path = @ARRAYFinal
END
4

2 に答える 2