I have a table called tblEventDates
with DateID
and EventDate
columns. I need to provide a stored procedure the param of @DateIDs
which is a string of DateID
s separated by a pipe, and return a string of EventDates
separated by a comma.
This is what I have tried so far
CREATE PROCEDURE [dbo].[ParseDates]
@DateIDs VARCHAR(100),
@ReturnDates VARCHAR(8000) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @i INT,
@DateID INT,
@D VARCHAR(8000),
@TmpDate VARCHAR(8000)
SET @D = @DateIDs
SET @i = CHARINDEX('|', @D)
WHILE @i > 0
BEGIN
SET @DateID = CONVERT(INT, SUBSTRING(@D, 1, @i - 1))
SELECT @TmpDate = EventDate
FROM tblEventDates
WHERE DateID = @DateID
SET @ReturnDates = CONCAT(@ReturnDates, ', ', @TmpDate)
SET @D = SUBSTRING(@D, @i + 1, 9999)
SET @i = CHARINDEX('|', @D)
CONTINUE
END
IF LEN(@D) > 0
BEGIN
SELECT @TmpDate = EventDate
FROM tblEventDates
WHERE DateID = @DateID
SET @ReturnDates = CONCAT(@ReturnDates, ', ', @TmpDate)
END
END
GO
So if @DateIDs = '65|67|69'
, @ReturnDates
should be '01/15/2019, 01/16/2019, 01/17/2019'
.