34,576
社区成员
发帖
与我相关
我的任务
分享
SELECT @sql = @sql + ', SUM(CASE ExamDate WHEN ''' + CONVERT(varchar(20), ExamDate, 102) + ''' THEN ScoreValue ELSE NULL END)''' + CAST(YEAR(ExamDate) AS VARCHAR) + '年' + CAST(MONTH(ExamDate) AS VARCHAR) + '月' + CAST(DAY(ExamDate) AS VARCHAR) + '日'''
@sql + ', SUM(CASE ExamDate WHEN ''' + CONVERT(varchar(20), ExamDate, 102) + ''' THEN ScoreValue ELSE NULL END)''' --分开解释下这句
@sql + ', SUM(CASE ExamDate WHEN '''-- 这里有4个引号,第一个和第4是一对,第二和第三转成一个引号
CONVERT(varchar(20), ExamDate, 102) + ''' THEN ScoreValue ELSE NULL END)''' --这里有6个引号,第1个和第6是一对,第二和第三转成一个引号和上边一句的单引号是一对.
一次类推。。
SELECT @sql = @sql
+ ', SUM(CASE ExamDate WHEN ''' ---这3个引号,最后一个是和这行第一个配对,前面2个代表1个单引号 ①
+ CONVERT(varchar(20), ExamDate, 102)
+ ''' THEN ScoreValue ELSE NULL END)''' ---本行第一个、最后一个为一对引号。另外实际分别为2个引号,第一个和上面的 ①配对,另一个和下面的②配对
+ CAST(YEAR(ExamDate) AS VARCHAR) + '年'
+ CAST(MONTH(ExamDate) AS VARCHAR) + '月'
+ CAST(DAY(ExamDate) AS VARCHAR) + '日''' --中间2个为一个引号 ②
select CONVERT(varchar(20), getdate(), 102) --- 2009.09.28
SELECT @sql = @sql
+ ', SUM(CASE ExamDate WHEN ''' --我就是不理解这里三个引号的意义。。
+ CONVERT(varchar(20), ExamDate, 102) --判断ExamDate 是否为 ExamDate ,格式如下面的
+ ''' THEN ScoreValue ELSE NULL END)''' --等于则为ScoreValue。否则为空
+ CAST(YEAR(ExamDate) AS VARCHAR) + '年' --再加上下面这3个字符串
+ CAST(MONTH(ExamDate) AS VARCHAR) + '月'
+ CAST(DAY(ExamDate) AS VARCHAR) + '日'''
select CONVERT(varchar(20), getdate(), 102) --- 2009.09.28