S2金牌考試錯題解析

大炮的大炮沒有大炮發表於2017-01-13

答案是BD。選項A的create table語句中,表名後面的大括號“{”、“}”是錯誤的,應該是圓括號“(”、“)”。選項C對標識列的描述也是錯誤的,identity(1,8)表示指定列自動編號,起始值是1,遞增量是8.


此題目考查的是SET與SELECT語句給變數賦值的區別。a,b,c,d選項在語法結構上並沒有錯誤,但是在表示式返回多個值時,select語句將返回的最後一個值給變數,set語句會出錯。


正確答案是選項A。本題要查詢選修了所有課程的學生資訊,即查詢有些學生沒有一門課程他沒有選的。如果有一門課沒有選,則此時(1)select * from select_course sc where sc.student_id=ts.id and sc.course_id=c.id存在null,這說明(2)select * from course c 的查詢結果中確實有記錄不存在(1查詢中),查詢結果返回沒有選的課程,此時select * from student ts 後的not exists 判斷結果為false,不執行查詢。


全域性變數字首是”@@”,並且系統變數不能修改和賦值,區域性變數可以宣告和賦值,字首是“@”,因此選C


如果題目給出是"一些"那肯定程式碼中含有some

如果題目給出是"任何"那肯定程式碼中含有any

如果題目給出是"所有或者全部"那肯定程式碼中含有all



在T-SQL中,變數按生存範圍可以分為全域性變數(Global Variable)和區域性變數(Local Variable)。全域性變數是由系統定義的,在整個SQL SERVER例項內都能訪問到的變數.全域性變數以@@作為第一個字元,使用者只能訪問,不能賦值。區域性變數由使用者定義,生命週期只在一個批處理內有效。區域性變數以@作為第一個字元,由使用者自己定義和賦值。


此題目考察的是CONVERT()函式轉換型別,CONVERT()中有兩個引數 , 第一個是資料型別,第二個為表示式,所以選項C、D是正確的,選項A、B是不正確的。


此題目考察的是CONVERT()函式轉換型別。A選項中不可能把字串轉換成int,因此A是不正確的選項


答案是AD。T-SQL中,Case語句有兩種格式。選項A和選項D程式碼分別符合Case語句的兩種語法格式。但選項B的Case語句編寫有錯,在結束位置使用as而不是end關鍵字;而執行選項C程式碼在結果集中會出現2個ClassID列,與本題要求不符

相關文章