Using SQL Server - 2014.
I have stored proc,
CREATE PROCEDURE getRequest(
@Id INT
,@ApiNo NVARCHAR(100)
,@RContent VARCHAR(max) out)
AS
BEGIN
IF((@ApiNo != ''))
BEGIN
DECLARE @name VARCHAR(100)
DECLARE @class VARCHAR(100)
SET @name = (SELECT name FROM Student WHERE id = @Id)
SET @class = CASE
WHEN (
@name LIKE '%First%'
)
THEN 'FR'
WHEN (
@name LIKE '%Second%'
)
THEN '''FR'',''TR'''
WHEN (
@name LIKE '%Fourthd%'
)
THEN '''FR'',''BM'',''TR'',''KK'''
ELSE 'TM'
END
SELECT RContent FROM School where Class IN (@class) AND Id = @Id
print 'This is a test' + @class
END
END;
In this I am setting @class using when case, and using IN to cheeking for multiple value.
eg: SELECT RContent FROM School where Class IN (@class) AND Id = @Id
I have used print to see my @class variable set correctly. I am seeing following value as : This is a test'FR','BM','TR','KK' .
But Its not working. If I remove Class IN (@class) . It will work, while If I add this doesn't work as expected.