这是我的商店程序:
ALTER PROC [dbo].[Details]
@name nvarchar(20)
AS
BEGIN
SELECT Id FROM Client WHERE name in (@Name)
END
如果我传递一个值,则输出为:
像这样,我正在路过:
EXEC [dbo].[Details] 'Monday'
对于两个值,像这样:
如果我传递的是两个值输出,那就不是来了:
为了得到这个,我需要发送参数 目前我正在传递像This
这样的两个参数EXEC [dbo].[Details] ''Monday','Wipro'';
提前感谢你
答案 0 :(得分:4)
您可以尝试使用此代码从参数中提取表格:
declare @sql nvarchar(max)=
'abc,def,ghi,jkl'
set @sql = replace(@sql,',','''),(''')
set @sql = 'select *
from (values ('''+@sql+''')
) a ( Value )
'
PRINT(@sql)
exec sp_executesql @sql
然后使用IN条件的执行结果。您可以使用任何分隔符配置此部件。
答案 1 :(得分:1)
试试这个:
ALTER PROCEDURE dbo.[Details]
@name NVARCHAR(30)
AS
DECLARE @Sql VARCHAR(MAX)
SET @name = REPLACE(@name,',',''',''')
SET @Sql = 'SELECT
*
FROM table1
WHERE username IN
(
''' + @name + '''
)'
EXEC (@Sql)
EXEC [dbo].[Details] 'mohan,prashant'