我有一个SP,它有一个参数@itemCode。如果参数的值为NULL,SP应该返回表中的所有项目记录,如果参数有值,SP应该只返回相应的itemcode记录。这是我写的:
SELECT
itemCode
, itemName
FROM itemTable
WHERE itemCode IN (ISNULL(@itemCode, (SELECT itemCode FROM itemTable)))
查询返回下面的错误消息,不确定原因,因为我已经在WHERE子句中使用了itemCode IN而不是itemCode =。我使用的是SQL Server。
有谁能提出问题或给予任何替代的解决方案吗?谢谢。
2条答案
按热度按时间mspsb9vt1#
我找到了一个解决方案,但不确定这是否是一个完美的解决方案。只是在WHERE子句下面进行了更改
3z6pesqy2#
只要使用
OR
逻辑,几乎是你的解释的直接翻译,例如。