我有以下情况:
----------------
ID | Type
----------------
1 | AB
2 | CD
3 | EF
现在,我需要在存储过程中进行此查询的查询是:
SELECT * FROM Table_Name WHERE TYPE IN ('AB','CD','EF')
我写了以下程序:
CREATE PROCEDURE dbo.usp_get_all
@Type VARCHAR(200)
AS
BEGIN
SELECT * FROM Table_Name WHERE TYPE IN (@Type)
END
仅当我以以下方式调用它时,此查询才能正常工作:
EXEC usp_get_all 'AB'
现在,可能会出现下面这样的情况,这是行不通的
EXEC usp_get_all '''AB'',''CD'',''EF'''
我的问题:
我不想使用任何函数来拆分逗号分隔的输入参数。只有通过使用输入参数,我才能获得相同的结果,例如:
SELECT * FROM Table_Name WHERE TYPE IN ('AB','CD','EF')
有什么办法可以解决问题吗?我可以使用动态 SQL 吗?如果可以,在这种情况下我该如何使用它?