做个if判断,条件是   
select sdate from songinfo where datediff(dd,sdate,getdate())>0 
如果条件成立,它执行“update songinfo set dayhit=1”;
不成立的话,执行select * from songinfo ;
SQL语句怎么写???

解决方案 »

  1.   

    if exists (select sdate from songinfo where datediff(dd,sdate,getdate())>0)
    update songinfo set dayhit=1else
    select * from songinfo
      

  2.   

    -- ORif exists (select 1 from songinfo where datediff(dd,sdate,getdate())>0)
    begin
    update songinfo set dayhit=1
    endelse
    begin
    select * from songinfo
    end
      

  3.   

    再问个问题,想用sdate字段中最大的值和现在的系统时间做比较
    select max(sdate)  from songinfo where datediff(dd,sdate,getdate())>0
    这句话错在哪?
    怎么改?
      

  4.   

    select datediff(dd, max(sdate), getdate()) from songinfo
      

  5.   

    if exists (select datediff(dd, max(sdate), getdate()) from songinfo>0)
    update songinfo set dayhit=1else
    select * from songinfo
    怎么错了!!!
      

  6.   

    exists 语句 不能进行值的比较 只能判断有没有记录存在 所以不能>0 只有在where语句里面用比较运算符
      

  7.   

    “select datediff(dd, max(sdate), getdate()) from songinfo”这条语句在查询分析器中执行的结果是0,那么就是说它永远都是执行这条语句:“update songinfo set dayhit=1”了!那么我想把select max(sdate) from songinfo查询出的结果放在 where datediff(dd,sdate,getdate())>0中去怎么写???
      

  8.   

    if exists (select datediff(dd, max(sdate), getdate()) from songinfo>0)
    update songinfo set dayhit=1else
    select * from songinfo
    怎么错了!!!----------------------------
    --if exists (select datediff(dd, max(sdate), getdate()) from songinfo>0)
    if (select datediff(dd, max(sdate), getdate()) from songinfo) > 0
    update songinfo set dayhit=1
    else
    select * from songinfo
      

  9.   

    做个if判断,条件是   
    select sdate from songinfo where datediff(dd,sdate,getdate())>0 
    如果条件成立,它执行“update songinfo set dayhit=1”;
    不成立的话,执行select * from songinfo ;
    SQL语句怎么写???--------------
    if exists(select 1 from t where datediff(dd,sdate,getdate())>0 )
    update songinfo set dayhit=1
    else
    select * from songinfo