为了账号安全,请及时绑定邮箱和手机立即绑定

SQL CASE的使用

标签:
SQL Server

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])) END) AS [EndDateTime]

 

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消