1、大寫字段加上雙引號,寫了腳本可以參考:mysql轉pg腳本
2、IFNULL轉換為COALESCE。
3、LIMIT分頁兩個參數一個page,limit轉換為如下寫法:
// 計算 offset,這里假設 page 從 1 開始int offset = (page - 1) * limit;sql:limit #{limit} OFFSET #{offset}
4、如果是利用mybatisplus的提供的構造器,大寫字段的話要加上雙引號。代碼如下:
QueryWrapper<RepBasicInfo> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("\"ACCOUNT_ITEM_ID\"", accountId)
.select("\"ID\"", "COALESCE(\"REVIEW\", '') AS \"REVIEW\"");
5、如果你的數據庫字段是數字類型,代碼中是string類型,需要進行轉換。代碼如下:
<if test="payment != '' and payment != null">AND "PAYMENT" = CAST(#{payment} AS numeric) <!-- 假設 PAYMENT 應該是 numeric 類型 -->
</if>
6、MySQL中的YEAR()和MONTH()函數替換為了PostgreSQL的EXTRACT(YEAR FROM CURRENT_DATE)和EXTRACT(MONTH FROM CURRENT_DATE)。
YEAR() --》EXTRACT(YEAR FROM CURRENT_DATE)
MONTH() --》EXTRACT(MONTH FROM CURRENT_DATE)
7、DATE_FORMAT的替換,代碼如下:
DATE_FORMAT(fu."CREATE_DT",'%m')
轉換為
to_char(fu."CREATE_DT", 'MM')
%Y => YYYY
%m => MM
%d => DD
%H => HH24
%i => MI
%s => SS
8、查詢結果原本是數字類型,但我想要字符串怎么辦,代碼如下:
COALESCE(al."LAST_END_DEBIT" - al."LAST_END_CREDIT", '0')
轉換為
COALESCE(NULLIF(al."INITIAL DEBIT", 0)::text,'')
待補充…