gpt4 book ai didi

mysql - 在 MariaDB 5.5.52 中使用生成列

转载 作者:行者123 更新时间:2023-11-30 22:00:04 25 4
gpt4 key购买 nike

我有一个有效的 sql 语句,如下所示:

SELECT SUM(CASE WHEN faell_art='monatlich' THEN betrag*12 END) + SUM(CASE WHEN faell_art='vierteljährlich' THEN betrag*4 END) + SUM(CASE WHEN faell_art='halbjährlich' THEN betrag*2 END) + SUM(CASE WHEN faell_art='jährlich' THEN betrag END) as total FROM banking

现在我想创建一个完全相同的生成列。我试过这个声明:

ALTER TABLE `banking` ADD `test` DECIMAL(10,2) AS (SUM(CASE WHEN faell_art='monatlich' THEN betrag*12 END) + SUM(CASE WHEN faell_art='vierteljährlich' THEN betrag*4 END) + SUM(CASE WHEN faell_art='halbjährlich' THEN betrag*2 END) + SUM(CASE WHEN faell_art='jährlich' THEN betrag END)) AFTER `kommentar`;

但是它不起作用(“#1901 - 列‘test’不允许使用函数或表达式”)。

有什么帮助吗?谢谢:-)

最佳答案

有一个限制:

subqueries or anything that depends on data outside the row are not allowed (these are not deterministic because the underlying data can change).

所有聚合函数(SUM,...)都与表中的其他记录一起操作。

Virtual (Computed) Columns .

因此,无法创建生成的列。或者,您可以创建一个 View 。

关于mysql - 在 MariaDB 5.5.52 中使用生成列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43682052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com