本文主要是介绍SQL Server善用LOG10 和POWER 函數,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MSDN聯機註解:LOG10 和POWER 函數是彼此反向關聯。例如,10^ LOG10(n) = n。
只有一個值的轉換時沒問題,以下測測結果集。;WITH C
AS
(SELECT number FROM master..spt_values WHERE number BETWEEN 1 AND 10 AND type IN('P')
)
SELECT POWER(10,SUM(LOG10(number))) FROM C/*
3628800
*/
--用一個變量驗證一下DECLARE @i INT
SET @i=1
;WITH C
AS
(SELECT number FROM master..spt_values WHERE number BETWEEN 1 AND 10 AND type IN('P')
)
SELECT @i=@i*number FROM CSELECT @i/*
3628800
*/--相同正確go--改變一下測試數據DECLARE @T TABLE(number int)
INSERT @T
select 1 UNION ALL
SELECT 2 UNION ALL
SELECT 4SELECT POWER(10,SUM(LOG10(number))) FROM @T
/*
7
*/
DECLARE @i INT
SET @i=1
SELECT @i=@i*number FROM @T
SELECT @i/*
8
*/
--結果不正確了
反而用自然對數的基底時,更準確。SELECT EXP(SUM(LOG(number))) FROM @T
/*
8
*/
結論:在結果集乘積時,別用Log10對數,還是自定議函數穩定。
这篇关于SQL Server善用LOG10 和POWER 函數的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!