提取顶级层次结构

问题描述 投票:0回答:1

ReportServer 数据库中的 Catalog 表包含由报表名称的层次结构级别组成的 Path 语句。例如:/DW Reports/DB1/SalesReport 或 /Main System Reports/IT/IT Report1 可能是该列中的值。我想要一个脚本来提取直到第二个斜杠的所有字符(您会注意到第一个斜杠位于报告中的所有其他字符之前。我已经使用了子字符串和字符索引的混合,但无济于事。

尝试了以下方法,但没有成功

选择 Substring(path, 2, Charindex('/',Path, 2) - 2) AS 顶层层次结构 来自目录 其中路径 <> '' 或路径不为空

sql
1个回答
0
投票

假设您使用的是 sql server 数据库,以下逻辑有效

SELECT SUBSTRING('/DW Reports/DB1/Salesreport', 1, 
  CHARINDEX('/', '/DW Reports/DB1/Salesreport',  2) - 1) as toplevelhierarchy 

我曾经在 substring 处使用 1,这样你就可以获得第二个“/”之前的所有字符

© www.soinside.com 2019 - 2024. All rights reserved.