hello
i want to write stored proc.
pls find the attached sample data:
USE [myapp]
GO
/****** Object: Table [dbo].[Folder] Script Date: 10/7/2021 2:35:26 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Folder](
[FolderID] [int] IDENTITY(1,1) NOT NULL,
[FolderName] [varchar](500) NOT NULL,
[ParentID] [int] NOT NULL,
CONSTRAINT [PK_Folder] PRIMARY KEY CLUSTERED
(
[FolderID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
------
USE [myapp]
GO
/****** Object: Table [dbo].[Query] Script Date: 10/7/2021 2:35:50 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Query](
[QueryID] [int] IDENTITY(1,1) NOT NULL,
[QueryName] [varchar](500) NOT NULL,
[FolderID] [int] NOT NULL,
[QueryContent] [text] NULL,
[OwnerName] [varchar](50) NULL,
[QueryContentIndex] [varchar](50) NULL,
[StorageClass] [varchar](50) NULL,
[IsForViewTemplate] [varchar](1) NULL,
CONSTRAINT [PK_Query] PRIMARY KEY CLUSTERED
(
[QueryID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO
note: default root folder is hard coded as "All Searches" with folder id as -1
i want to write stored proc, which returns me to display the data in
parent folder and child etc..
WITH fh(FolderID, FolderName, ParentID)
AS ( SELECT FolderID, FolderName, ParentID FROM Folder WHERE ParentID = 0
UNION ALL
SELECT s.FolderID,s.FolderName, s.ParentID FROM dbo.Folder AS s
INNER JOIN fh AS o ON o.FolderID = s.ParentID
)
SELECT
FolderName,QueryName
FROM
(
SELECT fh_1.FolderName, Q.QueryName, fh_1.FolderID
FROM
fh AS fh_1
left JOIN dbo.Query AS Q ON fh_1.FolderID = Q.FolderID
UNION
SELECT
NULL AS Expr1, QueryName, 9999999 AS FolderID FROM Query WHERE FolderID = 0
) AS x
ORDER BY
FolderID
Open in new window
Although it's not a stored procedure, the recursive cte should reflect the folder hierarchy