大家好,我正在尝试根据条件使用 IN 子句。我不想要 2 个单独的 SQL 语句,并希望有一个内联解决方案。我想说,如果字符串为空,则不要应用 IN 查询,但如果不是,则使用它。我知道我可以做一个 IF 声明,但我认为这有异味,但不确定另一种方法吗?谷歌搜索显示 IN 不支持 case 关键字......
在此先感谢,奥南。
declare @PartStockID nvarchar(50)
set @PartStockID = '32919,40335'
select top 10 * from PMS_PartStock
where
(@PartStockID != '' AND PartStockID in (SELECT ID FROM dbo.Split_List_Int(@PartStockID)) OR PMS_PartStock.PartStockID = PMS_PartStock.PartStockID )