sql示例:
SELECT
CASE
WHEN
@CPDM != CPDM THEN
@rownum := 1 ELSE @rownum := @rownum + 1
END AS RN,
@CPDM := CPDM AS CPDM,
@BIZ_DATE := BIZ_DATE AS BIZ_DATE,
a.QMRQ AS QMRQ
FROM
( SELECT @CPDM := '' FROM DUAL ) k,
( SELECT @BIZ_DATE := '' FROM DUAL ) v,
( SELECT @rownum := 0 ) r,
(
SELECT DISTINCT
T.QMRQ,
T.CPDM,
T1.BIZ_DATE
FROM
TC_PF_FISP003_CP_CPJZXX T
LEFT JOIN ( SELECT BIZ_DATE FROM TC_DF_HOLIDAY C WHERE C.C_DATA_TYPE = 'CN' AND C.IS_HOLIDAY = '1' ) T1 ON T1.BIZ_DATE >= T.JZRQ
) A
ORDER BY
CPDM,
BIZ_DATE
sql在开发环境运行正常,但是在测试环境中运行时报错:
错误代码: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_croatian_ci,IMPLICIT) for operation '='
经网上查资料,修改字符集测试后,发现问题所在。
问题原因:
MySQL数据库有数据库的默认字符集,而数据库中的表字段也有自己的字符集。
问题解决办法:
修改表字段的数据集或修改数据库数据集。