首页 > 解决方案 > MariaDB 创建视图将 SELECT 更改为不同的(不正确的)查询

问题描述

我有一个查询,我想作为 MariaDB 10.3(win) 中的一个视图,但是当我尝试创建这样的视图时,它被更改为另一个(且不正确)的视图,删除了括号:

create or replace view v_ReceiptSumByVAT
as
select VAT, SUM(RetailPrice) / (1 + VAT) as Sum from ReceiptItem
  group by VAT

当我运行SELECT VIEW_DEFINITION后者时,返回的查询是(注意增值税附近缺少括号)

select VAT, SUM(RetailPrice) / 1 + VAT as Sum from ReceiptItem
  group by VAT

这给出了与原始 SELECT 查询不同的结果 -A / 1 + B不等于A / (1 + B)
我发现了一个类似的问题,为什么 mysql 会更改我的代码视图?然而,它处理 MySql 并且查询被更改为等效的,而不是不同的。如何确保正确创建视图?

标签: sqlsummariadbsql-view

解决方案


这是 MariaDB 服务器中的一个错误。

有关状态,请查看MariaDB 错误票证系统中的MDEV-23656


推荐阅读