Reputation:
I have a table called "colamer" as shown below:
ID Title SectionID
1 abc 231
2 abc 232
3 pqr 95
4 jkl 165
My Stored Procedure:
CREATE PROCEDURE CheckDuplicateBannerforSection
/*
colamer_CheckDuplicateBannerforSection 'abc','231,232,233',NULL
*/
@BannerTitle NVARCHAR(200),
@SectionId VARCHAR(50),
@Result VARCHAR(100) OUT
AS
BEGIN
SET @Result = 1
BEGIN
IF EXISTS
(SELECT 1 FROM colamer WHERE Title= @BannerTitle
And SectionID in(SELECT value FROM dbo.colamer_fn_Split1( @SectionId ,',')))
END
SELECT @Result
END
I want the OutPut: @result = 231,232
Upvotes: 2
Views: 573
Reputation: 2488
I guess you're looking for something like this:
CREATE PROCEDURE CheckDuplicateBannerforSection
@BannerTitle NVARCHAR(200),
@SectionId VARCHAR(50),
@Result VARCHAR(100) OUT
AS
BEGIN
SET @Result = ''
Select @Result = @Result + ',' + Convert(nvarchar, SectionID)
from colamer where Title = @BannerTitle and SectionID in(SELECT value FROM dbo.colamer_fn_Split1( @SectionId ,','))
END
Upvotes: 1
Reputation: 29051
Try this:
CREATE PROCEDURE CheckDuplicateBannerforSection
/*
Mercola_CheckDuplicateBannerforSection 'abc','231,232,233',NULL
*/
@BannerTitle NVARCHAR(200),
@SectionId VARCHAR(50),
@Result VARCHAR(100) OUT
AS
BEGIN
SELECT @Result = STUFF((SELECT ',' + CONVERT(VARCHAR(50), c.SectionID)
FROM colamer c
CROSS APPLY dbo.colamer_fn_Split1(@SectionId, ',') AS A
WHERE c.SectionID = A.value AND Title = @BannerTitle
FOR XML PATH('')
), 1, 1, ''
)
END
Upvotes: 1
Reputation: 10295
CREATE PROCEDURE Mercola_CheckDuplicateBannerforSection
/*
Mercola_CheckDuplicateBannerforSection 'abc','231,232,233',NULL
*/
@BannerTitle NVARCHAR(200),
@SectionId VARCHAR(50),
@Result VARCHAR(100) OUT
AS
BEGIN
SET @Result = 1
BEGIN
IF EXISTS (SELECT 1 FROM colamer
WHERE Title = @BannerTitle
And SectionID
in(SELECT value FROM
dbo.colamer_fn_Split1( @SectionId ,',')))
BEGIN
SELECT top 1 @Result=SectionID FROM colamer
WHERE Title = @BannerTitle
And SectionID in(SELECT value FROM
dbo.colamer_fn_Split1( @SectionId ,','))
END
END
SELECT @Result
END
Upvotes: 0