【发布时间】:2018-05-24 11:23:24
【问题描述】:
我有一个存储过程,它当前接受一个值(ChainId)作为参数。我试图允许用户选择(ChainId)的多个值。我的 where 语句如下。有人可以帮我指出比我现在要走的更好的方向。目前,如果我为参数选择多个值,查询将运行并且不返回任何数据。
WHERE EndAuth is null AND CL.CHIND in(
SELECT [Value] FROM dbo.FnSplit(@ChainId, ','))
ORDER BY CL.CHIND
【问题讨论】:
-
首先,您使用的是哪个 DBMS?请相应地标记。其次,确保您的 split 函数按预期工作(并且不返回 NULL 值)。你可以试试
SELECT * FROM dbo.FnSplit('first value, second value', ',')。第三,由于这不是您的完整查询,请确保没有其他条件或联接实际上在过滤您的行。 -
当您选择多个值时,将准确的输入显示到
@chainID。然后显示该输入的SELECT [Value] FROM dbo.FnSplit(@ChainId, ','))的确切输出。 -
我正在使用 SSMS 2008r。只需在存储过程的末尾添加 #2 然后执行,我就可以使用该语句。此过程是从原始过程中复制而来的,因为我是新手,并且我在末尾用 #2 命名了我的存储过程。感谢您的帮助。
标签: sql stored-procedures query-parameters multiple-value