• [转] 一些sql语句的详细解释


    SELECT

    /*
    * 输出格式: x年x周
    * 如:200621
    */

    Convert(varchar(4),intYear) +           /* 先将intYear列转成字符型 */
    case when len(intWeek)=1               /* 判断intWeek列的长度是否为1 */
     then
      '0' + Convert(varchar(1),intWeek)   /* intWeek列为1位数字时转化成两位字符,最前面补0 */
      else
      Convert(varchar(2),intWeek)           /* 如果是两位则直接转成字符 */
    end
    as allYearWeek,                                  /* 给列取别名allYearWeek */

    /*
    * 输出格式: xxxx年xx周
    * 如:2006年21周
    */

    Convert(varchar(4),intYear) + '年' +
    case when len(intWeek)=1
     then
      '0'+ Convert(varchar(1),intWeek)
     else
      Convert(varchar(2),intWeek)
    end
     + '周' as DesYearWeek ,

    /*
    * 输出格式:x月x日~x月x日
    * 如: 05.22~05.28
     */

    right(replace(strWeekBeginDate,'-','.'),5) +   /* 先把替换为".",然后再取右边5位 */
    '~' +
    right(replace(strWeekEndDate,'-','.'),5)
    as DesDate

    FROM V_GetAllWeeks order by intYear Desc, intWeek Desc

    输出结果:

    allYearWeek      DesYearWeek               DesDate
    200621                2006年21周                  05.22~05.28
    200620                2006年20周                  05.15~05.21
    200619                2006年19周                  05.08~05.14
    200618                2006年18周                  05.01~05.07
    200617                2006年17周                  04.24~04.30
    200616                2006年16周                  04.17~04.23
    200615                2006年15周                  04.10~04.16
    200614                2006年14周                  04.03~04.09
    200613                2006年13周                  03.27~04.02
    200612                2006年12周                  03.20~03.26

  • 相关阅读:
    【bzoj1878】[SDOI2009]HH的项链
    【bzoj2821】作诗(Poetize)
    【bzoj2120】数颜色
    PAT 乙级真题 1005.德才论
    PAT 乙级真题 1004.福尔摩斯的约会
    博客园使用悬挂猫(上吊猫)置顶插件
    PAT 乙级真题 1002.数字分类
    AcWing 789.数的范围
    AcWing 788.逆序对的数量
    二分查找
  • 原文地址:https://www.cnblogs.com/temptation/p/407324.html
Copyright © 2020-2023  润新知