Sql server 在查询中创建其值来自条件的伪列

Sql server 在查询中创建其值来自条件的伪列,sql-server,if-statement,crystal-reports,case,dummy-data,Sql Server,If Statement,Crystal Reports,Case,Dummy Data,我正在准备一个查询,我将在Crystal Report中使用它 到目前为止,查询工作正常,但我想再添加一列(虚拟列),该列将根据条件填充, 以下是查询: select AcctCode , AcctName , Segment_0 + '-'+ Segment_1 as Acctnum , max(refdate) , min(refdate) , sum(debit) as Debit , sum(credit)as Credit

我正在准备一个查询,我将在Crystal Report中使用它 到目前为止,查询工作正常,但我想再添加一列(虚拟列),该列将根据条件填充, 以下是查询:

select AcctCode
     , AcctName
     , Segment_0 + '-'+ Segment_1 as Acctnum
     , max(refdate) 
     , min(refdate)
     , sum(debit) as Debit
     , sum(credit)as Credit 
from oact t0 
  inner join jdt1 t1 on t0.acctcode = t1.Account
where (  Segment_0 LIKE '01%' 
      or segment_0 like '02%'  
      or Segment_0 like '03%'
      )  
      and 
      ( t0.Segment_1 = '01') 
      and  (refdate  between '2014-01-31' and '2015-12-27' )
group by AcctCode, AcctName,Segment_0, Segment_1
order by  AcctCode 

如果段_0以“01”开头,则虚拟列中的值将显示“A” 如果段_0以“02”开头,则虚拟列中的值将显示“L” 如果段_0以“03”开头,则虚拟列中的值将显示“E” 我尝试使用if语句和case,但运气不在我这边:(

试试这个:

select AcctCode
     , AcctName
     , Segment_0 + '-'+ Segment_1 as Acctnum
     , max(refdate) 
     , min(refdate)
     , sum(debit) as Debit
     , sum(credit)as Credit 
     , case when Segment_0 LIKE '01%' then 'A'
            when segment_0 like '02%' then 'L' 
            when Segment_0 like '03%' then 'E'
            else 'X'   
       end dummy_column
from oact t0 
  inner join jdt1 t1 on t0.acctcode = t1.Account
where (  Segment_0 LIKE '01%' 
      or segment_0 like '02%'  
      or Segment_0 like '03%'
      )  
      and 
      ( t0.Segment_1 = '01') 
      and  (refdate  between '2014-01-31' and '2015-12-27' )
group by AcctCode, AcctName,Segment_0, Segment_1
order by  AcctCode