如果总列的和大于10,SQL插入到数据库中

本文关键字:插入 SQL 数据库 大于 如果 | 更新日期: 2023-09-27 18:18:41

我正在使用SQL。我有一个表名[TEST],列[column1]为整数。

我想向[column1]插入数据,直到记录的总和达到100。如果总和大于100,SQL查询不应该插入记录。

这意味着在执行插入语句之前,SQL查询应该检查可用数据的总和。如果数据小于100,则插入。

谢谢。

如果总列的和大于10,SQL插入到数据库中

您可以为插入语句使用以下存储过程:

CREATE PROCEDURE spInsertData
(
    @value INT
)
AS
BEGIN
    DECLARE @total INT
    SET @total = ISNULL((SELECT SUM([columnName]) FROM [tableName]),0)
    IF (@total + @value) <= 100
        BEGIN
            INSERT INTO [tableName] VALUES (@value)
        END
END

我正在使用存储过程在我的表中插入数据。

insert into  FundTransfer_Log values (@id,@data);

这个语句是一个循环,检查表中的所有数据(表包含超过200条记录)。首先,上面的insert语句对@data的总数求和,检查它是否小于100。如果返回值小于100,则插入所有带有该id的记录,否则不插入。

在oracle DB中测试,应该在msql或任何其他数据库中工作

Case语句语法可能有所不同!但逻辑是一样的

INSERT INTO TEST (COLUMN1)
SELECT [COULMN1 VALUE HERE] FROM DUAL
/*The condition that will check if inserting allowed or not*/
WHERE 
1 = (SELECT CASE WHEN SUM(column1) + [COULMN1 VALUE HERE] >= 100 THEN 0 ELSE 1 END FROM TEST)

注意:使用此解决方案,您将无需编写任何存储过程。