使用SQL Server - 2014。
我存储了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;
在这里我使用case设置@class,并使用IN来cheeking多个值。
eg: SELECT RContent FROM School where Class IN (@class) AND Id = @Id
我使用print来正确查看我的@class变量。 我看到以下价值:这是一个测试' FR'' BM'' TR'' KK' 。
但它不起作用。如果我删除 Class IN(@class)。它会起作用,而如果我添加它并没有按预期工作。