(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就是最後一條)會報錯
求解!
------解决方案--------------------
------解决方案--------------------
你的这段查询是没什么错误的,可能是你把它作为子查询,而把查询结果作为主查询 select 列表中的一员.
原来用一句查,可能只有一个结果,而加了 or 以后,会出来多个结果,因此出错.
建议:
单独执行
select CARCONDITION.COND
....
) =0)
看有几条记录,如果有多条记录,是否可以考虑把它作为一个子查询与原来的查询连接而获得结果.
------解决方案--------------------
子查询是一个集合 应该用IN 而不能直接用等于号。