国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

TSQL的連乘

2024-07-21 02:46:59
字體:
來源:轉載
供稿:網友
TSQL的連乘

某個需求需要對某一列的值做乘法,網上搜了把確實還真沒有直接的聚合函數用于將某一列的值乘起來。

找到了替代的算法:

http://jerryyang-wxy.blogspot.com/2012/04/transact-sql.html

http://blog.csdn.net/walkbob/article/details/45508501

------------------------------------------------------------------------------------------------

新問題出現了:如果要做連乘的那一列出現了0的值或者是小于0的值,做LOG運算時會出現

An invalid floating point Operation occurred.的錯誤

下面這個例子用于解決某列的值有小于等于零的值而又要做連乘的TSQL:

--生成測試表DROP TABLE #TSELECT 1 AS A INTO #TUNION ALL SELECT 2UNION ALL SELECT 3UNION ALL SELECT 4UNION ALL SELECT 0UNION ALL SELECT -1UNION ALL SELECT -2UNION ALL SELECT -3UNION ALL SELECT -4UNION ALL SELECT -5--定義三個參數,用于分別計算大于0的值,等于0的值,小于0的值的連乘結果declare @oZero as decimal(12,0)declare @eZero as decimal(12,0)declare @lZero as decimal(12,0)--大于0的值select @oZero = ISNULL(POWER(10.0,SUM(LOG(A))),1)FROM #TWHERE A > 0--等于0的值(相加即可)select @eZero = isnull(sum(A),1)FROM #TWHERE A = 0--小于0的值select @lZero = ISNULL(POWER(10.0,SUM(LOG10(A*-1))),1)*power(-1,(count(1)))FROM #TWHERE A < 0--三個結果相乘select @oZero * @eZero * @lZero as result


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰坪| 宜兰县| 彭泽县| 自治县| 宜州市| 客服| 大竹县| 绩溪县| 额敏县| 许昌县| 漯河市| 曲水县| 康乐县| 玛纳斯县| 曲水县| 遂宁市| 定南县| 塔河县| 阿尔山市| 葫芦岛市| 普安县| 滨州市| 吕梁市| 乐至县| 高唐县| 西城区| 肃南| 托克托县| 宜城市| 德江县| 安宁市| 阳朔县| 临高县| 望江县| 于都县| 方城县| 凭祥市| 田林县| 新营市| 甘孜| 沽源县|