2017-10-11 96 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。謝謝 –