DB2重大BUG?SQL查询结果多出来了

img

WITH T AS(
SELECT ID FROM
(SELECT ID FROM (VALUES(1),(2),(3)) T(ID) GROUP BY ID) WHERE ID IN(1,2,3)
SELECT ID FROM T WHERE ID IN(2,3)
UNION
SELECT ID FROM T WHERE 1=0

【以下回答由 GPT 生成】

问题的原因是查询语句中存在错误的语法。在DB2中,WITH语句应该放在查询语句的最前面,而不是在子查询中。

修正后的查询语句应该是这样的:

WITH T AS(
    SELECT ID 
    FROM (VALUES(1),(2),(3)) T(ID) 
    GROUP BY ID
)
SELECT ID 
FROM T 
WHERE ID IN(2,3)
UNION
SELECT ID 
FROM T 
WHERE 1=0

请使用以上修正后的查询语句,再次运行查询,应该能够得到正确的结果。

如果问题仍然存在,请提供更多的信息,或者提供具体的错误信息,以便我能够更准确地帮助您解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^