重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
sql server 2008 整數相除需要除數或被除數有一個數據類型為小數,才可以四舍五入。
站在用戶的角度思考問題,與客戶深入溝通,找到金東網站設計與金東網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:網站建設、成都網站建設、企業官網、英文網站、手機端網站、網站推廣、域名申請、虛擬空間、企業郵箱。業務覆蓋金東地區。
首先看一個例子,如圖:
兩條語句唯一區別就是 10 與 10.00
1、select cast(round(10/6,0) as int) ? ? ? 結果:1
2、select cast(round(10.00/6,0) as int) ?結果:2
但結果確不一樣。
原因是SQLserver有默認的數據類型轉換。
10/6 默認轉換為整型 即:10/6 = 1。那么 round(1) = 1
10.00/6 默認轉換為小數即:10.00/6 = 1.666666 ,那么 round(1.666666,0) = 2
select (select count(*) as y from t where s='b')
(select count(*) as n from t where s!='b')
在SqlServer默認當做int類型,兩個int變量相除得到的還是個int類型 ,所以只要把其中一個改成小數類型的就可以得到你要的結果了。
除法運算
一款簡單的除法運算題目,小朋友們懂的做,很簡單的除法運算,小朋友們來挑戰一下
運算是一種游戲,適用于小孩子對于數學的理解。
1.round() 函數是四舍五入用,第一個參數是我們要被操作的數據,第二個參數是設置我們四舍五入之后小數點后顯示幾位。
2.numeric 函數的2個參數,第一個表示數據長度,第二個參數表示小數點后位數。
例如:
select cast(round(12.5,2) as numeric(5,2)) 結果:12.50
select cast(round(12.555,2) as numeric(5,2)) 結果:12.56
select cast(round(122.5255,2) as numeric(5,2)) 結果:122.53
select cast(round(1222.5255,2) as numeric(5,2)) 結果:報錯了! 原因是:1222.5255,整數位是4,小數位是2,加起來4+2=6,超出了numeric設置的5位,所以為了保險,可以增減numeric的參數,例如numeric(20,2)。
你錯誤的問題點在于兩個子查詢之間沒有任何關聯,不能直接除。首先我們要建立關聯關系。再除
select a.值1,(case when isnull(b.值2,0)=0 then 0 else a.值1/b.值2) ---記得除數為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