mybatic 结果为null,返回0

返回空容易产生异常,当值为null时,返回为0的写法

<select id="getBookWordCountBookPssAndChapterLockOrPass" resultType="LONG" parameterType="STRING">
        select  COALESCE(sum(word_count),0) as word_count
        from t_news_count
        WHERE
        chapter_id  in
        ( SELECT chapter_id
          from t_content_chapter
          WHERE
          book_id = #{book_id,jdbcType=VARCHAR}
          AND
          ( status = 3 OR status = 1) )
        AND
        ( 3 = (SELECT current_state
               FROM t_content_metadata
               WHERE  book_id = #{book_id,jdbcType=VARCHAR} )
        )
    </select>
时间: 2024-08-27 11:44:52

mybatic 结果为null,返回0的相关文章

无符合条件的记录,SUM函数返回NULL。返回0而不是Null

但多数情况下,我们希望如果没有符合条件记录的情况下,我们希望它返回0,而不是NULL,那么我们可以使用例如下面的方法来处理: SELECT COALESCE(SUM(isnull(filed,0)), 0) as [filed1] FROM table1 行了,这下就不用费事去处理返回结果是否为NULL的情况了. COALESCE 函数的意思是返回参数列表中第一个为空的值,该方法允许传入多个参数,该函数也是SQL中的标准函数.

V8 的 typeof null 返回 &quot;undefined&quot; 的 bug 是怎么回事

1997 年,IE 4.0 发布,带来的众多新特性中有一个对未来“影响深远”的 DOM API:document.all.在随后的 6 年里,IE 的市场占有率越来越高,直到 2003 年的 95%. 在这段时间里,产生了两种成千上万的页面.第一种:IE only 的页面,由于超高的市场占有率,开发人员觉得根本不需要考虑兼容性,于是直接使用 document.all,比如: document.all(foo).style.visibility = "visible" 甚至很多网站直接在

【代码优化】返回0长度数组或者集合

改掉你从C语言继承过来的习惯,我们在java中没理由返回类型为数组或者集合返回null. private final List<Cheese> InStock =...; public Cheese[] getCheeses() { if( InStock.size() ==0){ return null; } } 这种是我们经常使用的 返回的模式,这就带来在应用Cheese数组的时候 都需要判断数组是否为null. Cheese[] cheeses= shop.getCheeses(); i

c语言NULL和0区别及NULL详解

先看下面一段代码输出什么: #include<stdo.h> int main() { int *p=NULL; printf("%s",p); } 输出<null> ,单步调试可以看出执行int *p=NULL,p的值为0x00000000,可以看出,NULL在实际底层调用中就是0, 在C语言中, NULL和0的值都是一样的,但是为了目的和用途及容易识别的原因,NULL用于指针和对象,0用于数值 对于字符串的结尾,使用'\0',它的值也是0,但是让人一看就知道

sql server聚合函数sum计算出来为空,怎样返回0

通常我们计算数据库中表的数据有几个常用的聚合函数 1.count : 计数 2.sum: 计算总和 3.avg: 取平均值 4.max: 取最大值 5.min: 取最小值 6.isnull: 当返回数据为空,默认设置为0 7.coalesce: 当返回数据为空,默认设置为0 1.count的使用 下面是一个student表的所有数据 1) 计算表中数据的数量,count(*),返回结结果是6 2)计数表中地址数据的数量,count(address),返回结果是5 2.sum的使用 1)计算总的年

CMutex使用时的注意事项,以及CMutex::Unlock何时会返回0

摘要:同一个CMutex对象不允许在两个线程中分别调用Lock和Unlock,否则Unlock会失败并返回0. 一.问题描述 笔者最近在开发过程中遇到了CMutex::Unlock返回0的情况,通过MSDN得知这表示Unlock失败.但MSDN并没有告诉我为什么会失败以及如何处理,查百度谷歌亦无果,于是决定动手探索. 这是MSDN上Unlock对返回值的解释 Return Value Default implementation always returns TRUE. Remarks The

void ,NULL与0的区别联系

void ,NULL及0的区别联系 void的详解: void的字面意思是"无类型"或"空类型",void*则为"无针型指针",那就意味着void*可以指向任何类型的数据. 众所周知,如果指针p1和p2的类型相同,那么我们可以直接在p1和p2间互相赋值,不会出现问题:但如果p1和p2指向不同的数据类 型,则必须使用强制类型转换 运算符把赋值符号两边的类型转换为相同类型或兼容的类型,即就是把赋值运算符右边的指针类型转换为左边指针的类型. 例如: f

Reverse Integer - 反转一个int,溢出时返回0

Reverse Integer Reverse digits of an integer. Example1: x = 123, return 321Example2: x = -123, return -321 若反转的数溢出,直接返回0 可以用计算结果来判断溢出,也可以用因数来判断 Java代码实现: 1 public class ReverseInteger { 2 public static int reverseInt(int x){ 3 if (x == 0) { 4 return

【转载】C/C++杂记:NULL与0的区别、nullptr的来历

原文:C/C++杂记:NULL与0的区别.nullptr的来历 某些时候,我们需要将指针赋值为空指针,以防止野指针. 有人喜欢使用NULL作为空指针常量使用,例如:int* p = NULL;. 也有人直接使用0值作为空指针常量,例如:int* p = 0;. 前者可能觉得:NULL作为空指针常量,名字很形象,可读性较强. 后者可能觉得:NULL并不是C/C++语言的关键字,而是一个在标准库头文件<stddef.h>中定义的宏,因此要使用NULL,可能需要直接或简介地包含<stddef.

C/C++语言中NULL、&#39;\0’和0的区别

注:本文参考了http://blog.csdn.net/mylinx/article/details/6873253及书籍<征服C指针>([日]前桥和弥著). NULL.'\0'和0的值是一样的,都是0,不过它们的表现形式不一样: 1. NULL: 即空指针,不过在C和C++中并不一样.在VS 2013的库文件string.h中可以看到如果定义. 1 /* Define NULL pointer value */ 2 #ifndef NULL 3 #ifdef __cplusplus 4 #d