数据库表table有TimeA和TimeB两个字段,TimeA不能为NULL,TimeB能为NULL,两个字段均为时间数据类型。现要求写条SQL语句,如果TimeB为空则取TimeA的值,否则取TimeB的值,按时间的降序排列。

解决方案 »

  1.   

    select Time=case when TimeB is null then TimeA else TimeB end 
    from tb 
    order by case when TimeB is null then TimeA else TimeB end  desc
      

  2.   


    select Time=isnull(TimeB,TimeA)from tb 
    order by Time decs
      

  3.   

    select
      case when TimeB is null then TimeA else TimeB end  as time
    from
      tb 
    order by
      case when TimeB is null then TimeA else TimeB end  desc
      

  4.   


    select Time=case when TimeB is null then TimeA else TimeB end 
    from tb 
    order by case when TimeB is null then TimeA else TimeB end  desc
      

  5.   


    select [Time]=isnull(TimeB,TimeA)from tb 
    order by [Time] desc
      

  6.   


    select TimeA,Isnull(TimeB ,TimeA) b
    from tb 
    where  TimeA is not null 
    order by b 
      

  7.   

    select isnull(TimeB,TimeA) AA from tb 
    order by AA decs
      

  8.   

    select isnull(TimeB,TimeA) AA from tb 
    order by AA decs 
    这个简单明了
      

  9.   

    select isnull(TimeB,TimeA) AA from tb 
    order by AA decs 
      

  10.   

    select Time=isnull(TimeB,TimeA)from tb 
    order by Time decs
      

  11.   

    目前主要用于Access数据库,上面提供的isnull用法好像是SQL Server的吧。自己写了个用于Access的SQL语句:
    select * from [table] order by (iif(isnull(TimeB),TimeA,TimeB) desc;