2017-10-11 61 views
0

我试图从API中将数据插入Azure服务器的表中。我想在插入之前过滤比率值大于或等于13.6。我以下的查询不起作用,并得到了IF条件的语法错误:SQL Server:比较插入前的值

DECLARE @end DATE 
SET @end = (SELECT GETDATE()) 

INSERT INTO [dbo].[rule] (status, start, [end], type, 
          originalAmount, availableAmount, fulfilledAmount, 
          rate, periodMin, periodMax, created, api_key_id) 
VALUES (@status, @start, @end, @type, 
     @originalAmount, @availableAmount, @fulfilledAmount, 
     @rate, @periodMin, @periodMax, @created, @api_key_id) 

IF (@rate >= 13.6) 
+3

戈登的答案是最清晰的解决方案。不过,你可以用WHERE替换上面的IF,即WHERE(@rate> = 13.6) – Sparky

+2

阅读本文,它会告诉你如何使用IF:https://docs.microsoft.com/en-us/sql/t-sql/language-elements/if-else-transact-sql – Leonidas199x

+0

谢谢大家的提示 –

回答

3

这是你想要的吗?

Declare @end DATE; 
SET @end=getdate()); 

IF (@rate >= 13.6) 
BEGIN 
     INSERT INTO [dbo].[rule] 
     (status, start, [end], type, originalAmount, availableAmount, fulfilledAmount, rate, periodMin, periodMax, created, api_key_id) 
     VALUES 
     (@status, @start, @end, @type, @originalAmount, @availableAmount, @fulfilledAmount, @rate, @periodMin, @periodMax, @created, @api_key_id); 
END; 
+0

是的,非常感谢你 –

+0

嗨,插入后,我的表格行没有像以前那样正确的顺序。我如何维护行顺序,并将新行添加到表中?例如,'type'列总是有2个值:'BID'或'ASK'。我希望在每次从API数据中插入数据后,“BID”行始终保持最佳状态。 –

+0

我在这里提出了一个单独的问题,我希望你有时间看看它:https://stackoverflow.com/questions/46705439/ms-sql-sorting-after-insertion。谢谢 –