2016-09-29 5 views
0

私はPATHというフィールドを持つテーブルを持っています。私は、各ユーザーのための最高のフォルダを取得したい...T-SQL 2008-最高のパスを取得

PartitionA \ PathA 
PartitionA \ PathA \ Location 
PartitionA \ PathA \ Location \ Share 
PartitionA \ PathA \ Location \ Share \ FolderUserA 
PartitionA \ PathA \ Location \ Share \ FolderUserA \ fileA.txt 
PartitionA \ PathB 
PartitionA \ PathB \ Location 
PartitionA \ PathB \ Location \ Share 
PartitionA \ PathB \ Location \ Share \ FolderUserB 
PartitionA \ PathB \ Location \ Share \ FolderUserB \ fileB.txt 

:このフィールドには、次の形式を(各レコードは新しい行である)があります。いずれかの正規化や階層を使用して - 私はあなたがまたはデータを再構築すべきでない言っていないんだけど、データが階層的だった場合、これは解決するために容易になるだろう

PartitionA \ PathB \ Location \ Share \ FolderUserA 
PartitionA \ PathB \ Location \ Share \ FolderUserB 

答えて

2

を:この例では、私が取得したいですデータ・タイプ。

order by len(path) - len(replace(path,' \ ','') desc 

(何が必要、グループ化などとともに)

:しかし...それだけに卑劣だろう
関連する問題