热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PostgreSQL与MySQL的语法差异详解

本文详细介绍了PostgreSQL与MySQL在SQL语法上的主要区别,包括如何使用COALESCE替代IFNULL、金额格式化的方法、别名处理以及日期处理等关键点。

在PostgreSQL中,通常使用COALESCE函数来替代MySQL中的IFNULL函数,用于返回第一个非空表达式。


对于金额的格式化,可以使用to_char函数,例如:to_char(price, '9,999.99'),这将价格格式化为带有千位分隔符的货币格式。


如果需要在查询结果中使用别名,并且希望这些别名区分大小写,必须使用双引号将其包围,否则PostgreSQL会自动将所有未加引号的标识符转换为小写。



示例查询语句:


SELECT ORG_ID AS "orgId", REPLACE(ORG_NAME, '中国邮政储蓄银行', '') AS "name" FROM he_org_info WHERE ORG_ID = '32000018' ORDER BY ORDER_ DESC;


处理日期时,可以使用SUBSTR函数来提取日期字符串的一部分,如:SUBSTR(a.approve_time, 1, 10) 或 SUBSTR(a.approve_time, 1, 19)。


当需要对数值进行求和操作时,如果列的数据类型不是数值型,应先使用CAST或CONVERT函数将其转换为适当的数值类型。例如:SUM(CAST(G.credit AS NUMERIC)) 或 SUM(CAST(p.ex_num AS INTEGER))。


在Java中获取数据库查询结果时,可以通过如下方式处理返回值:

int tokenCount = result.get(0).getBigDecimal("tokenCount").intValue();
int realPrice = info.getBigDecimal("real_price").intValue();


需要注意的是,在执行UPDATE语句时,PostgreSQL不支持直接使用表的别名。正确的语法应该是直接指定列名,而不是通过别名引用。例如:

UPDATE detail SET state = '3' WHERE uuid = ?;


对于涉及到当前日期时间的操作,建议统一使用特定的函数或方法来获取,以确保数据的一致性和准确性。例如,可以使用自定义的DateKit工具类中的getCurrentDate方法来获取格式化的当前日期时间字符串:

DateKit.getCurrentDate("yyyy-MM-dd HH:mm:ss")


推荐阅读
author-avatar
千__鱼姐姐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有