⑴ sqlserver按照某個欄位的值排序,但是需要剔除裡面某些值怎麼寫
判斷條件加上aaa不等於2就可以了。
⑵ sql server 2008 整數相除四捨五入
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
⑶ sql server 簡單的除法運算
用一個SQL求出來就可以了
select sum(case s when b the 1 else 0 end)/sum(case s when b then 0 else 1 end ) as result from t
但要判斷一下除數是否為0的情況,就要寫成這樣:
select case when sum(case s when b then 0 else 1 end )=0 then 0 else sum(case s when b the 1 else 0 end)/sum(case s when b then 0 else 1 end ) end as result from t
如果除數是0,結果返回0
⑷ 資料庫sql total欄位(523)除以100,取出來23出來這個sql怎麼寫
oracle
selectmod(523,100)fromal
mysql
selectmod(523,100)
sqlserver
select523%100
⑸ sql相除的問題
SELECT field1/field2 FROM TB;
當 field1的數值 > field2的數值時,除法得出的結果是<1的,即0.xxxxxx
這個時候在DB2的環境下SELECT出來的值是0
解決方法:
先把field1轉換成DOUBLE類型的,這樣計算出來的就會得出小數點了,會顯示出0.xxxx
SELECT CAST(field1 AS FLOAT)/field2 FROM TB;
ps.網上搜的資料,寫的是double,但在SQL Server2008中一直報錯,改成FLOAT就沒問題了。
小數點顯示4位小數。可以進一步四捨五入,保留兩位小數點
SELECT ROUND(CAST(field1 AS DOUBLE)/field2, 2) FROM TB;
如果數據列的值為NULL,將其設置為0,那麼sql就要這么寫
SELECT ROUND(COALESCE(CAST(field1 AS DOUBLE), 0)/field2, 2) FROM TB;
COALESCE這個函數系統的用法如下:
a. 輸入參數為字元類型,且允許為空的,可以使用COALESCE(inputParameter,」)把NULL轉換成」;
b. 輸入類型為整型,且允許為空的,可以使用COALESCE(inputParameter,0),把空轉換成0;
c. 輸入參數為字元類型,且是非空非空格的,可以使用COALESCE(inputParameter,」)把NULL轉換成」,然後判斷函數返回值是否為」;
d. 輸入類型為整型,且是非空的,不需要使用COALESCE函數,直接使用IS NULL進行非空判斷。
⑹ SQL 兩整數相除,取小數點後兩位
用函數ROUND(欄位,精度)SqlServer Oracle通用
⑺ SQLServer中SQL語句如何對兩個group By後的查詢結果進行相除
你錯誤的問題點在於兩個子查詢之間沒有任何關聯,不能直接除。首先我們要建立關聯關系。再除
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
⑻ sqlserver里取兩個整數相除的百分比,小數點後保留2位用什麼函數
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)。