SELECT field1/field2 FROM TB;

創(chuàng)新互聯(lián)建站于2013年開始,先為興化等服務(wù)建站,興化等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為興化企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
當(dāng) field1的數(shù)值 field2的數(shù)值時,除法得出的結(jié)果是1的,即0.xxxxxx
這個時候在DB2的環(huán)境下SELECT出來的值是0
解決方法:
先把field1轉(zhuǎn)換成DOUBLE類型的,這樣計(jì)算出來的就會得出小數(shù)點(diǎn)了,會顯示出0.xxxx
SELECT CAST(field1 AS FLOAT)/field2 FROM TB;
ps.網(wǎng)上搜的資料,寫的是double,但在SQL Server2008中一直報錯,改成FLOAT就沒問題了。
小數(shù)點(diǎn)顯示4位小數(shù)。可以進(jìn)一步四舍五入,保留兩位小數(shù)點(diǎn)
SELECT ROUND(CAST(field1 AS DOUBLE)/field2, 2) FROM TB;
如果數(shù)據(jù)列的值為NULL,將其設(shè)置為0,那么sql就要這么寫
SELECT ROUND(COALESCE(CAST(field1 AS DOUBLE), 0)/field2, 2) FROM TB;
COALESCE這個函數(shù)系統(tǒng)的用法如下:
a. 輸入?yún)?shù)為字符類型,且允許為空的,可以使用COALESCE(inputParameter,”)把NULL轉(zhuǎn)換成”;
b. 輸入類型為整型,且允許為空的,可以使用COALESCE(inputParameter,0),把空轉(zhuǎn)換成0;
c. 輸入?yún)?shù)為字符類型,且是非空非空格的,可以使用COALESCE(inputParameter,”)把NULL轉(zhuǎn)換成”,然后判斷函數(shù)返回值是否為”;
d. 輸入類型為整型,且是非空的,不需要使用COALESCE函數(shù),直接使用IS NULL進(jìn)行非空判斷。
select (select count(*) as y from t where s='b')
(select count(*) as n from t where s!='b')
在SqlServer默認(rèn)當(dāng)做int類型,兩個int變量相除得到的還是個int類型 ,所以只要把其中一個改成小數(shù)類型的就可以得到你要的結(jié)果了。
除法運(yùn)算
一款簡單的除法運(yùn)算題目,小朋友們懂的做,很簡單的除法運(yùn)算,小朋友們來挑戰(zhàn)一下
運(yùn)算是一種游戲,適用于小孩子對于數(shù)學(xué)的理解。
1.round() 函數(shù)是四舍五入用,第一個參數(shù)是我們要被操作的數(shù)據(jù),第二個參數(shù)是設(shè)置我們四舍五入之后小數(shù)點(diǎn)后顯示幾位。
2.numeric 函數(shù)的2個參數(shù),第一個表示數(shù)據(jù)長度,第二個參數(shù)表示小數(shù)點(diǎn)后位數(shù)。
例如:
select cast(round(12.5,2) as numeric(5,2)) 結(jié)果:12.50
select cast(round(12.555,2) as numeric(5,2)) 結(jié)果:12.56
select cast(round(122.5255,2) as numeric(5,2)) 結(jié)果:122.53
select cast(round(1222.5255,2) as numeric(5,2)) 結(jié)果:報錯了! 原因是:1222.5255,整數(shù)位是4,小數(shù)位是2,加起來4+2=6,超出了numeric設(shè)置的5位,所以為了保險,可以增減numeric的參數(shù),例如numeric(20,2)。
你錯誤的問題點(diǎn)在于兩個子查詢之間沒有任何關(guān)聯(lián),不能直接除。首先我們要建立關(guān)聯(lián)關(guān)系。再除
select a.值1,(case when isnull(b.值2,0)=0 then 0 else a.值1/b.值2) ---記得除數(shù)為0處理
from (select 值2,SUM(值1) AS 值1 from 表1 group by 值2) a
innor join (看情況使用innor join 還是 full 還是Left)
(select 值2,sum(值1) AS 值1 from 表2 group by 值2) b on A.值2=b.值2
當(dāng)前標(biāo)題:sqlserver相除,sqlserver除法
新聞來源:http://chinadenli.net/article21/dseeocd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、虛擬主機(jī)、搜索引擎優(yōu)化、自適應(yīng)網(wǎng)站、定制開發(fā)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)