如何解决为什么MySQL在ISNULL上给我这个1064错误?
MySQL给我以下错误代码,但我没有解决它。
错误代码:1064。您的SQL语法有错误;请在第15行的“ SECOND),'9999-12-31 00:00:00')的位置检查与MySQL服务器版本相对应的手册以使用正确的语法,在“ SECOND),'9999-12-31 00:00:00')
似乎第二个ISNULL是不可能的。
CREATE VIEW HUB1_VERSIONS AS
WITH STARTDATES (HUB_ID,STARTDATE,ENDDATE,BUSINESS_KEY) AS (
SELECT HUB1.HUB_ID,SATELLITES.STARTDATE,SATELLITES.ENDDATE,HUB1.BUSINESS_KEY
FROM HUB1 LEFT OUTER JOIN
(SELECT HUB_ID,META_LOAD_DTS AS STARTDATE,META_LOAD_END_DTS AS ENDDATE
FROM HUB1_SATELLITE1
UNION
SELECT HUB_ID,META_LOAD_DTS,META_LOAD_END_DTS
FROM HUB1_SATELLITE2) AS SATELLITES
ON HUB1.HUB_ID = SATELLITES.HUB_ID)
SELECT DISTINCT HUB_ID,CASE WHEN ENDDATE_NEW <= ENDDATE_OLD THEN ENDDATE_NEW ELSE ENDDATE_OLD END AS ENDDATE,BUSINESS_KEY
FROM (SELECT S1.HUB_ID,ISNULL(S1.STARTDATE,'1900-01-01 00:00:00') AS STARTDATE,(SELECT ISNULL(MIN(STARTDATE - '1' SECOND),'9999-12-31 00:00:00')
FROM STARTDATES AS S2
WHERE S1.HUB_ID = S2.HUB_ID
AND S1.STARTDATE < S2.STARTDATE) AS ENDDATE_NEW,ISNULL(S1.ENDDATE,'9999-12-31 00:00:00') AS ENDDATE_OLD,S1.BUSINESS_KEY
FROM STARTDATES AS S1) AS S3
这是表格(制表符分隔)
HUB_ID BUSINESS_KEY META_LOAD_DTS META_SOURCE
1 b1 2012-06-01 00:00:00 Demo
2 b2 2011-03-20 00:00:00 Demo
3 b3 2013-11-22 00:00:00 Demo
4 b4 2013-09-09 00:00:00 Demo
-1 Unknown 1900-01-01 00:00:00 Repository
-2 N.a. 1900-01-01 00:00:00 Repository
HUB_ID BUSINESS_KEY META_LOAD_DTS META_SOURCE
5 b5 2012-06-01 00:00:00 Demo
6 b6 2011-03-20 00:00:00 Demo
7 b7 2013-11-22 00:00:00 Demo
-1 Unknown 1900-01-01 00:00:00 Repository
-2 N.a.HUB3 1900-01-01 00:00:00 Repository
HUB_ID BUSINESS_KEY META_LOAD_DTS META_SOURCE
5 b5 2012-06-01 00:00:00 Demo
6 b6 2011-03-20 00:00:00 Demo
7 b7 2013-11-22 00:00:00 Demo
-1 Unknown1900-01-01 00:00:00 Repository
-2 N.a.HUB31900-01-01 00:00:00 Repository
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。