select *
from tb
order by 3 nulls last,4 nulls last,5 nulls last,6 nulls last
这里表示把第3个字段为空的排到最后,依次第4个字段为空的排到最后,
from tb
order by 3 nulls last,4 nulls last,5 nulls last,6 nulls last
这里表示把第3个字段为空的排到最后,依次第4个字段为空的排到最后,
--------------------------------------- ------------------------------ --------------- -------------------------------------------------- -------------------------------------------------------------------------------- ----------
1 a
2 b 12345 23423 100
3 c 22
4 d a 100SQL>
SQL> select id,gsm,tel,address,runmodel,zczj from (
2 select id,gsm,tel,address,runmodel,zczj,
3 decode(tel,null,0,1)+decode(address,null,0,1)+decode(RUNMODEL,null,0,1)+decode(zczj,null,0,1) ord
4 from t
5 ) order by ord desc
6 ; ID GSM TEL ADDRESS RUNMODEL ZCZJ
--------------------------------------- ------------------------------ --------------- -------------------------------------------------- -------------------------------------------------------------------------------- ----------
2 b 12345 23423 100
4 d a 100
3 c 22
1 a SQL>