如何选择具有特定父类别名称的所有类别

时间:2013-12-26 12:22:33

标签: sql-server-2008

我正在处理一个应用程序。我有桌子的地方: -

Category(Category_ID,CategoryName,Parent,Category_Tag)

在此表中,类型bigint和CategoryName以及Category_Tag的Category_ID和Parent是nvarchar。我想从Category表中选择所有CategoryName及其Name和Parent Name。如果任何类别没有任何父类,则查询应返回“ - ”

我使用了以下sql查询:

SELECT Category_ID, Category_Name, Parent, Category_Tag FROM Category

但是没有得到理想的结果。请帮助我。

2 个答案:

答案 0 :(得分:1)

如果您只需要一个级别的父类别,请使用LEFT JOIN

SELECT a.Category_ID, a.Category_Name, a.Parent, a.Category_Tag,
       ISNULL(b.Category_Name,'-') as Parent_Name
FROM Category as a
LEFT JOIN Category as b on (a.Parent=b.Category_ID)

答案 1 :(得分:0)

如果要将空父项替换为“ - ”,请使用ISNULL

SELECT Category_ID, Category_Name, ISNULL(convert(varchar(20),Parent), '-') as Parent, Category_Tag FROM Category