比如我数据库表中有版本和数据两列。
其中版本有202012,202101,202102,对应的数据列只有202102没有数据为空。
我现在要设置版本为参数,把数据列显示出来。
当我选择202012,202101时都没问题可以显示,但是选择202102时由于没有数据所以显示不出来,此时我要选择最新版本的数据也就是202101的版本显示,怎么写sql
select * from dim_dic_date_2021 where day ='2021-01-02' union all select * from dim_dic_date_2021 where (case when (select count(day) from dim_dic_date_2021 where day ='2021-01-02') >=1 then '2' else '1' end) =1 order by day desc limit 1
————————
逻辑给你,拿去消化吧!支持优化,自行研究下吧!
先去搜一下行转列,然后搜一下case when 的用法