国产探花免费观看_亚洲丰满少妇自慰呻吟_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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浙江省| 大安市| 唐河县| 隆尧县| 二连浩特市| 宜良县| 资源县| 灵台县| 平远县| 沙河市| 灵武市| 利辛县| 乐山市| 思南县| 莎车县| 类乌齐县| 琼中| 清涧县| 龙陵县| 双峰县| 辽阳县| 阿克| 林西县| 磐石市| 泽库县| 固镇县| 渭源县| 永丰县| 五指山市| 兴安县| 信宜市| 固原市| 莆田市| 文成县| 哈尔滨市| 友谊县| 洛南县| 屏边| 二手房| 黄平县| 红桥区|