【正文】
INTO newTable FROM stuInfo LEFT JOIN stuMarks ON = SELECT * FROM newTable 查看統(tǒng)計(jì)結(jié)果,可用于調(diào)試 30 TSQL參考語句 /*酌情加分:比較筆試和機(jī)試平均分,決定加哪門 */ DECLARE @avgWritten numeric(4,1) DECLARE @avgLab numeric(4,1) SELECT @avgWritten=AVG(writtenExam) FROM newTable WHERE writtenExam IS NOT NULL SELECT @avgLab=AVG(labExam)FROM newTable WHERE labExam IS NOT NULL IF @avgWritten@avgLab WHILE (1=1) 循環(huán)給筆試加分,最高分不能超過 97分 BEGIN UPDATE newTable SET writtenExam=writtenExam+1 IF (SELECT MAX(writtenExam) FROM newTable )=97 BREAK END ELSE … 略 … 循環(huán)給筆試加分,最高分不能超過 97分 31 TSQL參考語句 因?yàn)樘岱郑孕枰?isPass(是否通過)列的數(shù)據(jù) UPDATE newTable SET isPass=CASE WHEN writtenExam=60 and labExam=60 THEN 1 ELSE 0 END SELECT * FROM newTable 可用于調(diào)試 /*顯示考試最終通過情況 */ SELECT 姓名 =stuName,學(xué)號(hào) =stuNo ,筆試成績(jī) =CASE WHEN writtenExam IS NULL THEN 39。缺考 39。 ELSE convert(varchar(5),writtenExam) END ,機(jī)試成績(jī) =CASE WHEN labExam IS NULL THEN 39。缺考 39。 ELSE convert(varchar(5),labExam) END ,是否通過 =CASE WHEN isPass=1 THEN 39。是 39。 ELSE 39。否 39。 END FROM newTable 32 TSQL參考語句 /*顯示通過率及通過人數(shù) */ SELECT 總?cè)藬?shù) =count(*) ,通過人數(shù) =SUM(isPass), 通過率 =(convert(varchar(5),AVG(isPass*100))+39。%39。) FROM newTable 33 總結(jié) ?總結(jié)我們?cè)鴮W(xué)習(xí)過的查詢,合并多個(gè)表中的數(shù)據(jù)的方法有三種: ?聯(lián)合 (Union)-合并多個(gè)數(shù)據(jù)表中的行 ?子查詢-將一個(gè)查詢包含到另一個(gè)查詢中 ?聯(lián)接-合并多個(gè)數(shù)據(jù)表中的列 ?通過在子查詢中使用 EXISTS子句,可以對(duì)子查詢中的行是否存在進(jìn)行檢查 ?IN子查詢后面可跟隨返回多條記錄的子查詢,用于檢測(cè)某列的值是否在某個(gè)范圍