如果总列的和大于10,SQL插入到数据库中
本文关键字:插入 SQL 数据库 大于 如果 | 更新日期: 2023-09-27 18:18:41
我正在使用SQL。我有一个表名[TEST],列[column1]为整数。
我想向[column1]插入数据,直到记录的总和达到100。如果总和大于100,SQL查询不应该插入记录。
这意味着在执行插入语句之前,SQL查询应该检查可用数据的总和。如果数据小于100,则插入。
谢谢。
您可以为插入语句使用以下存储过程:
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)
注意:使用此解决方案,您将无需编写任何存储过程。