请问不用子查询和嵌套的情况下怎么过滤掉XS字段出现第一个负数以及后面的所有行,select * from (原查询) where CZYF<(select CZYF from 原查询 where xs <0 ) 这样可以解决,但是sql太长了,请问大佬们有没有什么函数可以解决
。。。这个sql就长了?大哥,你难道以为所有的需求只要写1-2行就可以解决吗?能够解决问题就行了。sql长,如果有效率也是可以的。不用太意那么多了,很多公司业务需求复杂,比如有可能一个报表要写300-500行sql语句才可能出来。但是只要效率可以,那么是一样可取的。完成工作才是重点
可以用with as,类似把原查询作为一个临时表,这样原查询的语句就不用重复写,类似如下
with t as (原查询)
select * from t where CZYF<(select min(CZYF) from t where xs <0 )#建议如果有多个负数的话,是不是要改成取最小值