PostgreSQL(MySQL)插入操作傳入值爲空則設置默認值

1、mysql寫法

IFNULL(p1,p2),如果p1有值就是p1,如果p1是空,則值爲p2

<insert id="insertForeach" parameterType="java.util.List" >
    insert into user_message
        ( skip_id )
    values
        <foreach collection="list" item="userMessage" index="index" separator=",">
            ( ifnull(#{userMessage.skipId},"0") )
        </foreach>
</insert>

2、postgresql寫法

COALESCE函數是返回參數中的第一個非null的值,它要求參數中至少有一個是非null的,如果參數都是null會報錯

select COALESCE(null,null); //報錯
select COALESCE(null,null,now(),''); //結果會得到當前的時間
select COALESCE(null,null,'',now()); //結果會得到''

//可以和其他函數配合來實現一些複雜點的功能:查詢學生姓名,如果學生名字爲null或''則顯示“姓名爲空”
select case when coalesce(name,'') = '' then '姓名爲空' else name end from student;

問題到此解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章