首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从自引用表中获取Cat1/Cat2/Cat3字符串

从自引用表中获取Cat1/Cat2/Cat3字符串
EN

Stack Overflow用户
提问于 2013-06-22 02:33:07
回答 2查看 151关注 0票数 0

我试图从一个自引用表中产生一个类似于Cat1/Cat2/Cat3等的字符串。

数据如下所示:

CategoryTable

CategoryID,名称,ParentID

1,根,0

2,Cat1,1

3,Cat2,2

4,Cat3,3

5,Cat4,1

6,Cat5,5

我想让步:

根目录/Cat1/Cat2/Cat3根目录/Cat4/Cat5

如何在sql server中执行此操作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-22 02:48:28

您可以使用CTE

SQL Fiddler

代码语言:javascript
复制
WITH cte AS (
  SELECT CategoryID,CAST(Name AS VARCHAR(4000)) AS Name 
  FROM Category 
  WHERE ParentID = 0
  UNION ALL
  SELECT c.CategoryID, CAST(e.Name + '/' + c.Name AS VARCHAR(4000))
  FROM cte e
  INNER JOIN Category c 
    ON c.ParentID = e.CategoryID
)
SELECT c1.Name
FrOM cte c1
WHERE NOT EXISTS (SELECT 1 FROM cte c2 where c1.name <> c2.name AND c2.name like c1.NAME + '%')
票数 1
EN

Stack Overflow用户

发布于 2013-06-22 02:46:47

试试这个:

代码语言:javascript
复制
DECLARE @str VARCHAR(255) --Or whatever length you need
SET @str = ''

SELECT @str = @str + [Name] + '/' FROM CategoryTable

SET @str = SUBSTRING(@str,0,LEN(@str)) -- remove the trailing '/'
PRINT @str
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17242090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档