触发器是数据库程序,由数据库自动触发。触发器使用 CREATE TRIGGER 语句创建。例如,我们想要创建一个触发器,在每次向 ORDERS 表插入新记录后,将 ORDERS 表的 ORDER_COMMISION 列更新为 ORDER_TOTAL 值的 5%。示例 CREATE TRIGGER ORDERCOMMUPD AFTER INSERT ON ORDERS FOR EACH ROW MODE DB2SQL BEGIN ATOMIC UPDATE ORDERS SET ORDER_COMMISION=(5*ORDER_TOTAL)/100; 使用上述语句,我们创建了一个 AFTER 触发器,它将在向 ORDERS 表插入任何新行后自动触发。类似地,我们可以有 BEFORE ... 阅读更多
我们可以使用以下查询在 ORDERS DB2 表中找到重复的 TRANSACTION_ID:示例 SELECT TRANSACTION_ID, COUNT(*) AS TRANSACTION_COUNT FROM ORDER GROUP BY TRANSACTION_ID HAVING COUNT(*) > 1 COUNT(*) 的目的是计算行数。我们将使用 GROUP BY 函数根据 TRANSACTION_ID 对结果进行分组,并为了显示重复的事务 ID,我们将使用 HAVING 语句为 COUNT(*) 大于 1 设置谓词。例如,考虑以下 TRANSACTIONS DB2 表:TRANSACTION_IDTRANSACTION_STATUSIRN22345PAIDIRN22345PAIDIRN22345PAIDIRN56902PAIDIRN99781UNPAIDIRN56902PAID 查询将给出以下结果:TRANSACTION_IDTRANSACTION_COUNTIRN223453IRN569022IRN997811阅读更多
问题:编写一个 SQL 查询,以计算今天从 ORDERS DB2 表中下达的订单数量。(日期不应硬编码)解决方案 我们可以使用以下 DB2 查询找到今天下达的订单数量:示例 SELECT COUNT(ORDER_ID) AS ORDER_COUNT FROM ORDERS WHERE ORDER_DATE = CURRENT DATE 在此查询中,我们使用了 COUNT COLUMN 函数,它将计算 ORDER_ID(主键)的总数。在 WHERE 子句中,我们将对 ORDER_DATE 列使用谓词。CURRENT DATE 是 DB2 内置函数,它将返回当前系统日期。例如,如果 ... 阅读更多