今天在用mysql写语句查询的时候,遇到了两个问题
第一个就是用CONCAT函数连接参数时,遇中文就乱码
第二个就是连接的时候,连接的字显示不完全
刚开始我写的sql语句是这样的:(这个是简化后的,原本是多个表连接还有很多查询条件,所以就加了group by)
SELECT
CONCAT(YEAR(con.record_time),'年',QUARTER(con.record_time),'季度') AS record_time
FROM consignation con
GROUP BY con.record_time
加了group by 就乱码
后来查了一些资料后,知道有两种方法可以解决乱码,一种是用cast,另外一种是用CONVERT,原理都是一样的就是要将
一个数字参数被转化为与之相等的二进制字符串格式
SELECT
CONCAT(cast(YEAR(con.record_time) as char),'年',CONVERT(QUARTER(con.record_time),char),'季度') AS record_time
FROM consignation con
GROUP BY con.record_time
改了之后第二个问题出现了,它只显示一个2012,年后面的都没显示,看了一会才知道,原来是char类型我没定义大小
所以最后就改成一下这个了
SELECT
CONCAT(cast(YEAR(con.record_time) as char(4)),'年',CONVERT(QUARTER(con.record_time),char(1)),'季度') AS record_time
FROM consignation con
GROUP BY con.record_time
分享到:
相关推荐
主要解决oracle低版本(例如9i)无法使用WM_CONCAT函数实现多行字段拼接问题,参考附件中样例即可
wm_concat函数在oracle 10G以下版本是没有的,这个就需要我们自己来创建,有需要的就下载下来,直接运行就行了,如果在运行中出中,请分开运行,不要一次性运行哟
codesys中CONCAT函数共1页.pdf.zip
wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/
oracle 9i 实现wm_concat函数 进行一列多行合并,之间使用,分割
1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 2、用sqlplus登录:sqlplus -logon sys/123 as sysdba 3、执行@C:\Users\JOYTRAVEL\Desktop\WMSYS用户\owmaggrb.plb; 如果执行结果报错,说找不...
Oracle 11g之后取消了wm_concat函数,12C及以后版本需要使用的话,需要自定义新建这个函数,提供DDL给需要用到的兄弟们。
重建WMSYS用户的WMSYS.WM_CONCAT函数的3个文件重建WMSYS用户的WMSYS.WM_CONCAT函数的3个文件
Oracle从12C版本开始,不支持wm_concat函数,我们可以采取的办法有使用listagg函数代替wm_concat函数,或者为了减小修改程序的工作量,可以通过手工创建wm_concat函数来解决这个问题。
NULL 博文链接:https://vernonchen163.iteye.com/blog/2177323
owmctab.plb、owmaggrs.plb、owmaggrb.plb
本篇文章主要介绍了MySQL中concat函数的用法(连接字符串),在命令行模式下进行测试。具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 在sqlplus中执行包里的owmctab.plb、owmaggrs.plb、owmaggrb.plb三个脚本即可。 简单来说,用PL/SQL执行下一下几个脚本就可以了。 特别要注意:PL/SQL登录时,要...
包含owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 三个文件,可解决OracleXE中没有WM_CONCAT函数的问题;解决方案如下:1、下载三个文件:owmctab.plb 、 owmaggrs.plb 、 owmaggrb.plb 2、用sqlplus登录:...
11gr2和12C上已经摒弃了wm_concat函数,当时我们很多程序员在程序中使用了该函数,导致程序出现错误,为了减轻程序员修改程序的工作量,只有通过手工创建个wm_concat函数,来临时解决该问题
大家用oracle数据库里面的wmsys.wm_concat函数有没有遇见过字符串缓冲区太小的情况? 针对这种情况我写了个自定义聚合函数 是clob版的。
Oracle10g之后有些版本已不包含WMSYS.WM_CONCAT函数,若用到此函数, 系统会提示异常:ORA-00904: "WM_CONCAT": invalid identifier 因此需单独重建此函数,方法如下: 解压附件,在sqlplus中执行包里的owmctab....
解决WM_CONCAT()函数无法使用问题的相关资源包,相关解决方案见https://blog.csdn.net/u012556249/article/details/118111110
SQL Server 2012有一个新函数,就是CONCAT函数,连接字符串非它莫属。比如在它出现之前,连接字符串是使用"+"来连接,如遇上NULL,还得设置参数与配置,不然连接出来的结果将会是一个NULL。本文就介绍了关于SQL ...