Oracle中的SUM用法讲解
Oracle中的SUM条件查询
1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量
SELECT AREA_CODE, SUM( CASE WHENIPTV_NBRISNULLorIPTV_NBR=''THEN 0 ELSE 1 END ), SUM( CASE WHENACC_NBRISNULLorACC_NBR=''THEN 0 ELSE 1 END ), COUNT(*) FROM GAT_SQMS.GAT_SQMS_BAND_IPTV_VIEW GROUPBY AREA_CODE;
2、使用sum条件查询
查询IPTV_NBR不为空的数量
SUM( CASE WHENIPTV_NBRISNULLorIPTV_NBR=''THEN 0 ELSE 1 END )
SUM里边使用CASEWHEN语句
当IPTV_NBRISNULL为0,ELSE为1
oracle中sum字符串方法
CREATEORREPLACEFUNCTIONSumString(i_TableNameINVARCHAR2, i_GroupColNameINVARCHAR2, i_ResultColNameINVARCHAR2, i_GroupColValueINVARCHAR2, i_SeparatorINVARCHAR2) RETURNVARCHAR2IS TYPET_CurISREFCURSOR; C_CurT_Cur; V_SqlVARCHAR2(2000); V_ResultVARCHAR2(2000); V_TmpVARCHAR2(200); V_CntNUMBER:=0; BEGIN V_Result:=''; V_Sql:='SELECT'||i_ResultColName||'FROM'||i_TableName|| 'WHERE'||i_GroupColName||'='||i_GroupColValue; OPENC_CurFORV_Sql; LOOP FETCHC_Cur INTOV_Tmp; EXITWHENC_Cur%NOTFOUND; IFV_Cnt=0THEN V_Result:=V_Tmp; ELSE V_Result:=V_Result||i_Separator||V_Tmp; ENDIF; V_Cnt:=V_Cnt+1; ENDLOOP; CLOSEC_Cur; RETURNV_Result; ENDSUMSTRING;
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接