1、在某表中就一字段aa,希望判断aa字段里面的内容开头为“MD”的在bb字段里面显示“MD”,aa字段里面的内容包含为“OW”和“CW”的在bb字段里面显示“羊毛”,aa字段里面的内容除了以上3种的在bb字段里面显示“其他”。如何写查询语句呢?2、dd字段是日期,则希望在ee字段中显示dd日期提前14天的日期,如果dd字段为空的,ee也为空,这个语句又如何写呢?

解决方案 »

  1.   

    1
    select case when aa like 'MD%' then 'MD'
         when aa like '%OW%' or aa like '%CW%' then '羊毛'
         else '其他'
         end as bb
        , 其他字段
    from tab
      

  2.   

    2
    select dateadd(day,-14,dd) ee
        , 其他字段
    from tab
      

  3.   

    1.select
       aa,
        case when left(aa,2)='md' then 'md'
             when left(aa,2) in('ow','cw') then '羊毛'
             else '其他'
       end  as bb
    from
       tb
      

  4.   

    select * , ee = dateadd(dd,-14,dd) from tb
      

  5.   

    2.select dateadd(day,-14,dd) ee, 其他字段 from tb
      

  6.   


    select bb = case  when aa like '%MD%'
               then 'MD'
               when aa like '%ow%' or  aa like '%cw%'
               then '羊毛'
             else 
             '其他'
             end
              
              
    select DATEADD(dd,-14,getdate())
      

  7.   


    select 
      aa case when left(aa,2)='md' then 'md'
              when aa like '%ow%' or aa like '%cw%' then '羊毛'
              else '其他'
         end as bb
    from tabselect dateadd(day,-14,dd) ee, 其他字段 from tab
      

  8.   

    select dateadd(day,-14,dd) ee, 其他字段 from tb这语句可以查询了,只是我想问一下这里面是否也可以设定字段的长度呢,出来的时间是2011-3-25 0:00:00
    我不想要这个0:00:00
      

  9.   

    select convert(varchar(10),dateadd(day,-14,dd),120) ee, 其他字段 from tb
      

  10.   

    要是2008的数据库你可以convert(date,dateadd(day,-14,dd)) as ee
    2005 -2000 
    只能convert(varchar(10),dateadd(day,-14,dd),120) as ee