[转] 一些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

posted @ 2006-05-23 17:31  temptation  阅读(1066)  评论(0编辑  收藏  举报