在我的表格中,我有几个docNums系列。
我想有条件地检索所有系列或从集合中排除一个系列。
我尝试了以下返回错误的查询
declare @p char(1) = 1
select
t0.docNum
from
OINV t0
where
t0.DocNum = case
when @p <> '1' then t0.DocNum
else (select t1.DocNum
from oinv t1
where SUBSTRING(convert(varchar, t1.docNum), 1, 1) <> '9'
and LEN(convert(varchar, t1.docNum)) < 7)
end
正确的查询应该是什么?
答案 0 :(得分:1)
非常确定您收到有关返回多行的子查询的错误消息。这是因为您的子查询将返回表中的所有行。您需要将该子查询与外部查询相关联以避免这种情况。但是你根本不需要在这里使用子查询。这可以简化为这样的。
post