(select CARCONDITION.CONDITIONDIV from CARCONDITION
where (CAST(SUBSTRING(cast(CARCONDITION.RENTSTARTTIME as nvarchar),8,4)as bigint) <1159
or CAST(SUBSTRING(cast(CARCONDITION.RENTSTARTTIME as nvarchar),8,4)as bigint) =1159)
and (CAST(SUBSTRING(cast(CARCONDITION.RENTSTARTTIME as nvarchar),8,4)as bigint)>0
or CAST(SUBSTRING(cast(CARCONDITION.RENTSTARTTIME as nvarchar),8,4)as bigint) =0)
)as AM
and前面的區別就是後面的比較值(1159 和0 不一樣)
但是下面的(=0就是最後一條)會報錯
求解!
where (CAST(SUBSTRING(cast(CARCONDITION.RENTSTARTTIME as nvarchar),8,4)as bigint) <1159
or CAST(SUBSTRING(cast(CARCONDITION.RENTSTARTTIME as nvarchar),8,4)as bigint) =1159)
and (CAST(SUBSTRING(cast(CARCONDITION.RENTSTARTTIME as nvarchar),8,4)as bigint)>0
or CAST(SUBSTRING(cast(CARCONDITION.RENTSTARTTIME as nvarchar),8,4)as bigint) =0)
)as AM
and前面的區別就是後面的比較值(1159 和0 不一樣)
但是下面的(=0就是最後一條)會報錯
求解!
and SUBSTRING(CARCONDITION.RENTSTARTTIME,8,4)<=1159
这样写就行
サブクエリは複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後に続く場合や、サブクエリが 1 つの式として使われる場合は複数の値は許可されません。
消息 512,级别 16,状态 1,第 1 行
子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。就是子查询返回的记录行数必须只能是一行,不能是多行
原来用一句查,可能只有一个结果,而加了 or 以后,会出来多个结果,因此出错.建议:
单独执行
select CARCONDITION.COND
....
) =0)
看有几条记录,如果有多条记录,是否可以考虑把它作为一个子查询与原来的查询连接而获得结果.