【发布时间】:2017-10-09 13:46:17
【问题描述】:
我写了一个类似的 sql 查询,
DECLARE @TypeID BIGINT
--SET @TypeID=169
SELECT TypeID from TrnChecklist where TypeID IN
(CASE WHEN (@TypeID IS NOT NULL AND @TypeID <> '') THEN @TypeID
ELSE (select distinct TypeID from TrnChecklist where AuditID=57) END)
如果我提供@TypeID,它会给我记录。但如果我不提供 @TypeID 那么它会给我 error
“子查询返回超过 1 个值。当子查询跟在 =, !=,...... 之后,这是不允许的”
但我在 where 条件下使用“TypeID IN”,因为“从 AuditID=57 的 TrnChecklist 中选择不同的 TypeID”返回多个值
我的数据样本(在 TrnChecklist 表中。其他列很少,但我只使用这 2 个)
【问题讨论】:
-
您使用的是哪个数据库?
-
您收到多行错误,因为(从 TrnChecklist 中选择不同的 TypeID,其中 AuditID=57)。
标签: sql