我正在使用SQL Server 2016,并且必须将动态值传递给IN
参数。
由于这个原因,我正在使用SPLIT_STRING()
函数,该函数从给定的逗号分隔的字符串中返回项目表。如果我将类似(4,6,8)
的值传递给@Cylinders
参数,它将返回所有记录。
Where CarCylinders IN (SELECT value FROM STRING_SPLIT(@Cylinders,','))
但是我有一些要求将Null
值传递给@Cylinder
参数。这样该查询将返回所有记录,并忽略条件。
我不想使用动态SQL解决方案,因为查询非常复杂并且输入参数超过20个。