一些sql語句的詳細解釋[更新:2006.5.23]

kgdiwss發表於2006-05-23


/*
*註釋新增:∮明天去要飯
*/

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

相關文章