❶ sqlserver里有沒有取整的函數
參數
numeric_expression
精確數字或近似數字數據類型類別的表達式(bit 數據類型除外)。
length
是 numeric_expression 將要四捨五入的精度。length 必須是 tinyint、smallint 或int。當 length 為正數時,numeric_expression 四捨五入為 length 所指定的小數位數。當 length 為負數時,numeric_expression 則按 length 所指定的在小數點的左邊四捨五入。
function
是要執行的操作類型。function 必須是 tinyint、smallint 或 int。如果省略 function 或 function 的值為 0(默認),numeric_expression 將四捨五入。當指定 0 以外的值時,將截斷 numeric_expression。
例:
Select ROUND(150.75, 0)
151.00
Select ROUND(150.75, 0, 1)
150.00
FLOOR
返回小於或等於所給數字表達式的最大整數。
FLOOR(1.1)=1
FLOOR(2)=2
CEILING
返回大於或等於所給數字表達式的最小整數。
CEILING(1.1)=2
CEILING(2)=2
如果要四捨五入:
cast(round(1.6,0) as int) =2
cast(round(1.4,0) as int)=1
cast(round(2,0) as int)=2
❷ sqlserver 中保留小數點後多少位,用round
MSSQL Round函數四捨五入保留小數點後多少位小數是由其長度參數所決定的。
ROUND
返回數字表達式並四捨五入為指定的長度或精度。
語法
ROUND (
numeric_expression , length [ , function
] )
參數
numeric_expression
精確數字或近似數字數據類型類別的表達式(bit 數據類型除外)。
length
是 numeric_expression 將要四捨五入的精度。length 必須是
tinyint、smallint 或int。當 length 為正數時,numeric_expression 四捨五入為 length 所指定的小數位數。當 length 為負數時,numeric_expression 則按 length 所指定的在小數點的左邊四捨五入。
function
是要執行的操作類型。function 必須是 tinyint、smallint 或
int。如果省略 function 或 function 的值為
0(默認),numeric_expression 將四捨五入。當指定 0 以外的值時,將截斷
numeric_expression。
返回類型
返回與 numeric_expression 相同的類型。
例如
round(1.4567,3) 將返回 1.4570 也就是1.457
round(1.4562,3) 將返回 1.4560 也就是1.456
注意盡管我們可以設置很長的小數位數,如100位,但是實際能保留的最多小數位數取決於被計算數字的數據類型,小數點後最多37位應該是極限了,長度再多也取不到了。
❸ ROUND 問題, sqlserver資料庫有一張表
select cast(price as numeric(12,2))
❹ SQLSERVER取數問題
SELECT
CASE IsNull(A, '~')
WHEN '~' THEN '0'
ELSE A
END AS A
FROM ...
❺ sqlserver語句中*=是什麼作用
左連接的意思。就是A表裡的item_no所有記錄通通出現,即使和B表裡面item_no相等的記錄也會出現,B表相應的欄位顯示空。
❻ sqlserver 函數的寫法
returns @RowSet table(
ID int identity(1,1) ,
score float,
lastScore float
)
你這里已經聲明了一個表格類型變數作為函數的返回值.
那麼只要在函數里對這個表進行賦值,就可以直接return
insert into @RowSet values(...)
return
--------
declare @ScoreList table (YScore float)
declare @ScoreList1 table (lastScore float)
-------------------------------------------
怎麼我看你又聲明了兩個表格類型的變數?你函數聲明裡的返回類型是表,那麼單行返回的話就只能往裡裝簡單類型的值.
如果你要union拼接兩個table一起返回的話,兩個內部table和聲明的返回table定義又不一致.
很奇怪的寫法...能看出來你想干什麼...但這種寫法很怪異.
========================================補充
insert into @ScoreList SELECT...
insert into @ScoreList1 SELECT ...
你這不是把兩個查詢的結果賦給兩個內部變數了么,且這個表與你聲明的返回表都是一個float列.
你完全可以再把這兩個變數表insert 到@RowSet啊,或者不用這倆變數表,直接在兩個查詢里向@RowSet寫入值.
最後直接
return
end
不就行了?
======
http://hi..com/kas68310/blog/item/af4e05f0d5ee18c50a46e012.html
這有個返回值為talble的函數,你參看一下吧.你這個函數的完成度已經相當高了.
❼ sqlserver 中保留小數點後多少位,用round
round返回數字表達式並四捨五入為指定的長度或精度。
顯示的界面上要求只保留到小數點後4位,發現round(表達式,4,1)可以截斷小數點4位後的數字
如果寫(round,4)表示對小數點後4位四捨五入,但不截斷多的0
❽ sqlserver 中保留小數點後多少位,用round
round返數字表達式並四捨五入指定度或精度
顯示界面要求保留數點4位,發現round(表達式,4,1)截斷數點4位數字
寫(round,4)表示數點4位四捨五入,截斷0
❾ sqlserver怎麼把小數點後面多餘的0去掉
您好,我來為您解答:
select cast(round(1.00/3,2) as decimal(18,2))
如果我的回答沒能幫助您,請繼續追問。
❿ sqlserver 中乘法計算
如果沒有主鍵的話可以這樣來寫
select Price,Number,TotalPrice
into #tmp
from a
left join b on a.BookID = b.BookID
update #tmp set TotalPrice = isnull(Price,0)*isnull(Number,0)
drop table #tmp
大致應該就是這樣樣子吧 , 我也沒有在SQL上運行過 你可以先試試看