999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL Server 2000中CASE語(yǔ)句與函數(shù)的綜合運(yùn)用

2011-12-29 00:00:00陳磊
考試周刊 2011年41期


  摘 要:在SQL Server 2000數(shù)據(jù)庫(kù)中綜合運(yùn)用Transact—SQL語(yǔ)言的CASE語(yǔ)句與函數(shù),可以方便靈活地解決多分支控制流程的問(wèn)題。
  關(guān)鍵詞:SQL Server 2000 Transact—SQL語(yǔ)言 CASE語(yǔ)句 函數(shù) 綜合運(yùn)用
  
  數(shù)據(jù)庫(kù)是計(jì)算機(jī)應(yīng)用的一項(xiàng)重要技術(shù)。隨著計(jì)算機(jī)、網(wǎng)絡(luò)通信等技術(shù)的發(fā)展,在網(wǎng)絡(luò)多用戶環(huán)境下對(duì)數(shù)據(jù)進(jìn)行安全有效的管理已成為計(jì)算機(jī)的一項(xiàng)重要應(yīng)用。SQL Server 2000是微軟公司推出的基于SQL標(biāo)準(zhǔn)的關(guān)系型大型數(shù)據(jù)庫(kù)管理系統(tǒng)。
  它功能強(qiáng)大,易學(xué)易用,與Windows 2000相結(jié)合,可以構(gòu)造網(wǎng)絡(luò)環(huán)境數(shù)據(jù)庫(kù)甚至分布式數(shù)據(jù)庫(kù),可以滿足企業(yè)及Internet等大型數(shù)據(jù)庫(kù)的應(yīng)用,當(dāng)前使用十分普遍。
  SQL Server 2000系統(tǒng)所使用的SQL語(yǔ)言稱為T(mén)ransact—SQL。Transact—SQL是用于管理SQL Server 2000實(shí)例,創(chuàng)建和管理SQL Server 2000實(shí)例中的所有對(duì)象,并且插入、檢索、修改和刪除SQL Server 2000數(shù)據(jù)表中數(shù)據(jù)的命令語(yǔ)言,它是SQL Server 2000數(shù)據(jù)庫(kù)管理系統(tǒng)的核心。
  使用Transact—SQL腳本可以編寫(xiě)存儲(chǔ)過(guò)程,完成建立和操作數(shù)據(jù)庫(kù)、數(shù)據(jù)查詢、數(shù)據(jù)管理等工作。Transact—SQL語(yǔ)言可以在SQL Server 2000提供的查詢分析器上執(zhí)行,查詢分析器是一個(gè)具有執(zhí)行SQL腳本、分析查詢性能和調(diào)試存儲(chǔ)過(guò)程等功能的管理工具。它是SQL Server 2000系統(tǒng)中最常用的操作管理工具,利用它可以輸入、調(diào)試、運(yùn)行SQL語(yǔ)句。
  使用Transact—SQL的變量、運(yùn)算符、函數(shù)和流程控制語(yǔ)句等基本語(yǔ)言元素,可以進(jìn)一步豐富查詢操作,實(shí)現(xiàn)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的復(fù)雜功能。
  Transact—SQL語(yǔ)言中的CASE語(yǔ)句可以根據(jù)多個(gè)選擇決定程序執(zhí)行的流程。相當(dāng)于if-else語(yǔ)句的嵌套,但結(jié)構(gòu)更清楚。
  簡(jiǎn)單CASE語(yǔ)句
  ·語(yǔ)法格式
  CASE輸入表達(dá)式
  WHEN比較表達(dá)式THEN結(jié)果表達(dá)式[...n]
  [ELSE最終結(jié)果表達(dá)式]
  END
  ·功能將輸入表達(dá)式的值與每一個(gè)比較表達(dá)式比較,若相等,則返回對(duì)應(yīng)結(jié)果表達(dá)式的值;否則返回最終結(jié)果表達(dá)式的值。最終結(jié)果表達(dá)式也可以省略。輸入表達(dá)式和每個(gè)比較表達(dá)式的數(shù)據(jù)類型必須相同,或者可以隱式轉(zhuǎn)換。
  [...n]表示可以使用多個(gè)“WHEN ... THEN”表達(dá)式子句。
  例如:使用CASE語(yǔ)句根據(jù)輸入的學(xué)生分?jǐn)?shù),輸出對(duì)應(yīng)的等級(jí),這個(gè)問(wèn)題如果用C語(yǔ)言的switch語(yǔ)句很好完成,C語(yǔ)言程序如下:
  main()
  {int score
  printf("Please enter a score:");
  scanf("%d",&score);
  printf("score=%d:",score)
  switch(score/10)
  {case 10:
  case 9:printf("A/n");break;/*分?jǐn)?shù)在90分以上,則輸出A*/
  case 8:printf("B/n");break;
  case 7:printf("C/n");break;
  case 6:printf("D/n");break;
  default:printf("E/n");break;
  }
  }
  若用Transact—SQL語(yǔ)言的CASE語(yǔ)句來(lái)做則會(huì)遇到一些問(wèn)題,Transact—SQL語(yǔ)言大多數(shù)情況下是對(duì)表中數(shù)據(jù)進(jìn)行操作,本例題中所使用的分?jǐn)?shù)就來(lái)自于choice表,如按照C語(yǔ)言模式寫(xiě)成如下程序:
  use teachdb
  select sno,score=
  case score/10
  when 9 thenprint"優(yōu)"
  when 8 thenprint"良"
  when 7 thenprint"中"
  when 6 thenprint"及"
  elseprint"不及格"
  end
  from choice go
  則產(chǎn)生錯(cuò)誤,因?yàn)閟no是表中字段,它的運(yùn)行結(jié)果會(huì)在“網(wǎng)格”標(biāo)簽內(nèi)顯示,而print命令是在查詢分析器窗口的“消息”標(biāo)簽中顯示用戶信息。且該例中的print語(yǔ)句屬于結(jié)果表達(dá)式,print語(yǔ)句的結(jié)果應(yīng)賦值給score字段,而它們的類型又不匹配,所以這么設(shè)計(jì)在語(yǔ)法結(jié)構(gòu)上就存在缺陷。第一次修改程序時(shí),取消print語(yǔ)句改為score,以驗(yàn)證問(wèn)題是否是因?yàn)轭愋筒黄ヅ湓斐傻摹P薷暮蟪绦蚰苷_\(yùn)行說(shuō)明語(yǔ)法上沒(méi)有問(wèn)題,但所有score字段的結(jié)果都顯示為“NULL”,與預(yù)想的結(jié)果不符(預(yù)想的結(jié)果應(yīng)為該生對(duì)應(yīng)的分?jǐn)?shù)),初步分析是輸入表達(dá)式score/10與比較表達(dá)式9,……,6都不匹配。
  進(jìn)入企業(yè)管理器查看choice表中score字段的類型為數(shù)值型,且學(xué)生具體分?jǐn)?shù)值有小數(shù)部分,于是考慮將score小數(shù)部分去掉,ceiling()函數(shù)的功能是:返回大于或等于給定值的最小整數(shù)。將score/10改為ceiling(score)/10,再運(yùn)行程序,所有score字段的結(jié)果仍為“NULL”,單獨(dú)執(zhí)行print ceiling(82.5)/10觀察其結(jié)果為:8.0,說(shuō)明雖然去掉了小數(shù)部分,但其值仍為數(shù)值型,而比較表達(dá)式的值為整型所以不匹配,cast()函數(shù)的功能為:把一種數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換為另一種數(shù)據(jù)類型,再將ceiling(score)/10改為cast(ceiling(score)/10 as int),運(yùn)行程序,所有score字段的結(jié)果為該生對(duì)應(yīng)的分?jǐn)?shù),結(jié)果正確。
  接下來(lái)考慮如何讓學(xué)號(hào)后面出現(xiàn)的不是對(duì)應(yīng)分?jǐn)?shù)而是對(duì)應(yīng)等級(jí),前面已經(jīng)分析score字段與print語(yǔ)句的類型不匹配,所以將表中已有的score字段換成新加入的grade字段,即程序運(yùn)行后新生成一個(gè)結(jié)果字段,程序如下:
  use teachdb
  select sno,grade--grade并不是表中已有的列
  case cast(CEILING(score)/10as int)
  when 9 then"優(yōu)"--分?jǐn)?shù)在90分以上,則輸出“優(yōu)”
  when 8 then"良"
  when 7 then"中"
  when 6 then"及"
  else"不及格"
  end
  from choice go
  實(shí)驗(yàn)證明通過(guò)CASE語(yǔ)句與函數(shù)的綜合運(yùn)用,可以方便靈活地解決多分支控制流程的問(wèn)題。
  
  參考文獻(xiàn):
  [1]譚浩強(qiáng).《C程序設(shè)計(jì)》.清華出版社,1991.
  [2]周力. 《SQL Server 2000實(shí)用教程》.大連理工大學(xué)出版社,2009.
  [3]田淑清,周海燕,趙重敏等.《全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)教程——C語(yǔ)言程序設(shè)計(jì)》.高等教育出版社,1998.

主站蜘蛛池模板: 亚洲av片在线免费观看| 亚洲无码四虎黄色网站| 在线色国产| 日韩免费毛片| 波多野结衣第一页| 国产欧美日韩资源在线观看| 狠狠色成人综合首页| 制服丝袜无码每日更新| 亚洲va精品中文字幕| 97青草最新免费精品视频| 国产拍揄自揄精品视频网站| 亚洲国内精品自在自线官| 制服丝袜 91视频| 91精品伊人久久大香线蕉| 日韩免费毛片视频| 亚洲精品大秀视频| 一级毛片基地| 午夜啪啪福利| 国产精品30p| 欧美成人午夜影院| 国产激情无码一区二区免费| 亚洲精品午夜无码电影网| 欧美第一页在线| av尤物免费在线观看| 国产亚洲精品97在线观看| jizz国产视频| 亚洲欧美不卡中文字幕| 成年片色大黄全免费网站久久| 久久无码av一区二区三区| 国产av剧情无码精品色午夜| 国产黑人在线| 亚瑟天堂久久一区二区影院| 韩国福利一区| 美女被操黄色视频网站| 国产视频资源在线观看| 香蕉色综合| 精品一區二區久久久久久久網站| 久久久精品久久久久三级| 狠狠亚洲婷婷综合色香| AV网站中文| 青青青视频免费一区二区| 91娇喘视频| 亚洲无线观看| 在线视频亚洲欧美| 九九热在线视频| 超碰aⅴ人人做人人爽欧美 | 在线免费亚洲无码视频| 国产毛片片精品天天看视频| 男人天堂伊人网| 无码在线激情片| 国产成人综合日韩精品无码首页| a级毛片视频免费观看| 精品国产三级在线观看| 国产精品美乳| 亚洲成av人无码综合在线观看| 日本一本正道综合久久dvd| 无码高潮喷水专区久久| 欧美亚洲激情| 亚洲中文字幕久久无码精品A| 无码又爽又刺激的高潮视频| 58av国产精品| 日本91视频| 国产精品黑色丝袜的老师| 午夜福利亚洲精品| 国产精品第一区| 2022精品国偷自产免费观看| a毛片免费在线观看| 日本高清有码人妻| 五月综合色婷婷| 日韩第一页在线| 亚洲a级在线观看| 日韩在线视频网站| 精品国产乱码久久久久久一区二区| 国产自无码视频在线观看| 国产成人91精品| 午夜高清国产拍精品| 亚洲综合天堂网| 久久精品人人做人人爽| 日韩欧美国产综合| 青青青亚洲精品国产| 首页亚洲国产丝袜长腿综合| 综合久久久久久久综合网|