CASE表达式是一个标量表达式。它无法象C#程式一样,可以控制一条语句,实现条件逻辑流程处理。只能根据条件逻辑返回某个值。

下面有一个xml文件

代码
<?xml version="1.0" encoding="utf-8" ?>
<Intervales>
  
<Interval>
    
<IntervalId>0</IntervalId>
    
<IntervalName></IntervalName>
  
</Interval>
  
<Interval>
    
<IntervalId>1</IntervalId>
    
<IntervalName>季度</IntervalName>
  
</Interval>
  
<Interval>
    
<IntervalId>2</IntervalId>
    
<IntervalName></IntervalName>
  
</Interval>
  
<Interval>
    
<IntervalId>3</IntervalId>
    
<IntervalName></IntervalName>
  
</Interval>
  
<Interval>
    
<IntervalId>4</IntervalId>
    
<IntervalName></IntervalName>
  
</Interval>
  
<Interval>
    
<IntervalId>5</IntervalId>
    
<IntervalName>小时</IntervalName>
  
</Interval>
  
<Interval>
    
<IntervalId>6</IntervalId>
    
<IntervalName>分钟</IntervalName>
  
</Interval>
  
<Interval>
    
<IntervalId>7</IntervalId>
    
<IntervalName></IntervalName>
  
</Interval>
</Intervales>

 

它在程序应用时,会以一个DropDownList形式供用户选择,存在数据表字段中,存入时,它只存入XML节点IntervalId的值。
下面例子中(代码部分),如果我们知道开始时间与时间间隔(频率),这样可以计算出结束时间:

代码
CASE [IntervalId] WHEN 0 THEN (DATEADD(Year,[Frequency],[StartDateTime])) WHEN 1 THEN (DATEADD(Quarter,[Frequency],[StartDateTime])) WHEN 2 THEN (DATEADD(Month,[Frequency],[StartDateTime])) WHEN 3 THEN (DATEADD(Week,[Frequency],[StartDateTime])) WHEN 4 THEN (DATEADD(Day,[Frequency],[StartDateTime])) WHEN 5 THEN (DATEADD(Hour,[Frequency],[StartDateTime])) WHEN 6 THEN (DATEADD(Minute,[Frequency],[StartDateTime])) WHEN 7 THEN (DATEADD(Second,[Frequency],[StartDateTime])) ENDAS [EndDateTime]

 

 

相关文章:

  • 2022-12-23
  • 2021-05-28
  • 2021-10-17
  • 2021-05-29
猜你喜欢
  • 2021-07-11
  • 2021-09-16
  • 2021-06-13
  • 2021-07-08
  • 2021-12-02
相关资源
相似解决方案