當(dāng)我們需對(duì)查詢結(jié)果進(jìn)行批量調(diào)整,例如所有員工都發(fā)工資額百分之八的獎(jiǎng)金.將算好后的獎(jiǎng)金再顯示出來(lái).而不影響表內(nèi)數(shù)據(jù),該怎樣操作呢,下面由,南昌網(wǎng)絡(luò)公司技術(shù)人員介紹具體操作方法和相關(guān)注意事項(xiàng).
根據(jù)數(shù)據(jù)庫(kù)設(shè)計(jì)范式的要求,在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)庫(kù)表中的各列之間不存在函數(shù)依賴,為了方便查詢,可以在select語(yǔ)句中使用運(yùn)算符對(duì)列值進(jìn)行計(jì)算.在sql server中例如:
use mydatabase
go
select username Salary,Salary*0.08 from UserSalary
運(yùn)行代碼即可看到結(jié)果,但這時(shí)會(huì)發(fā)現(xiàn)計(jì)算出來(lái)的獎(jiǎng)金沒(méi)有列標(biāo)題,這時(shí)就要利用別名查詢了,修改上述代碼如下:
use mydatabase
go
select username Salary,Salary*0.08 as '獎(jiǎng)金' from UserSalary
其中as就是別名查詢的關(guān)鍵字,執(zhí)行以上代碼,這時(shí)就可以看到獎(jiǎng)金列.
當(dāng)獎(jiǎng)金:80.0134249924
那么需要設(shè)置獎(jiǎng)金的精確位數(shù),即獎(jiǎng)金小數(shù)點(diǎn)后的位數(shù),因?yàn)橄到y(tǒng)直接計(jì)算出來(lái)的結(jié)果可能有很多位小數(shù),假設(shè)我們只要一位小數(shù)即可(角的單位),需要修改上述代碼如下所示:
select username Salary,(cast (Salary*0.08 as decimal(18,1))) as '獎(jiǎng)金' from UserSalary
運(yùn)行代碼即可看到結(jié)果;
南昌網(wǎng)站設(shè)計(jì)公司技術(shù)員提醒:cast函數(shù)可以實(shí)現(xiàn)數(shù)據(jù)類型的轉(zhuǎn)換,但在Access數(shù)據(jù)庫(kù)中是不支持cast函數(shù),一般用cint代碼,但cint不支持小數(shù).如果大家有更好的方法一起分享下.
在訪問(wèn)access使用的sql如下:
select id,UserName,UserSex,Department,Salary,Date, cint(Salary*0.08) as Bonus from[UserSalary]
希望本文對(duì)廣大站長(zhǎng)或從事企業(yè)網(wǎng)站建設(shè)公司的團(tuán)隊(duì)有所幫助,如對(duì)此不太理解的,可以與南昌網(wǎng)站建公司百恒網(wǎng)絡(luò)技術(shù)部聯(lián)系。我們很高興與廣大站長(zhǎng)和從事企業(yè)網(wǎng)站建設(shè)公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗(yàn),分享是一件很快樂(lè)的事情。